masa miya
/
DDS_AD9834
AD9834 DDS Sinewave
main.cpp@0:6e98d1ce9934, 2011-07-17 (annotated)
- Committer:
- jf1vrr
- Date:
- Sun Jul 17 15:58:30 2011 +0000
- Revision:
- 0:6e98d1ce9934
Rev.1.01A new 2011/07/14 Mlabo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jf1vrr | 0:6e98d1ce9934 | 1 | /*AD9834 DDS Test 2011/07/14 MLabo*/ |
jf1vrr | 0:6e98d1ce9934 | 2 | #include "mbed.h" |
jf1vrr | 0:6e98d1ce9934 | 3 | #include "TextLCD.h" |
jf1vrr | 0:6e98d1ce9934 | 4 | |
jf1vrr | 0:6e98d1ce9934 | 5 | TextLCD lcd(p24, p26, p27, p28, p29, p30); //Starboard Orenge |
jf1vrr | 0:6e98d1ce9934 | 6 | DigitalOut FSYNC(p18); |
jf1vrr | 0:6e98d1ce9934 | 7 | DigitalOut SCLK(p19); |
jf1vrr | 0:6e98d1ce9934 | 8 | DigitalOut SDATA(p20); |
jf1vrr | 0:6e98d1ce9934 | 9 | |
jf1vrr | 0:6e98d1ce9934 | 10 | Timer timer; |
jf1vrr | 0:6e98d1ce9934 | 11 | |
jf1vrr | 0:6e98d1ce9934 | 12 | void serial_out(uint16_t data) { |
jf1vrr | 0:6e98d1ce9934 | 13 | |
jf1vrr | 0:6e98d1ce9934 | 14 | FSYNC = 0; |
jf1vrr | 0:6e98d1ce9934 | 15 | data & 0x8000? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 16 | data & 0x4000? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 17 | data & 0x2000? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 18 | data & 0x1000? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 19 | data & 0x0800? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 20 | data & 0x0400? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 21 | data & 0x0200? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 22 | data & 0x0100? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 23 | data & 0x0080? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 24 | data & 0x0040? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 25 | data & 0x0020? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 26 | data & 0x0010? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 27 | data & 0x0008? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 28 | data & 0x0004? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 29 | data & 0x0002? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 30 | data & 0x0001? SDATA = 1 : SDATA = 0; SCLK = 0; SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 31 | FSYNC = 1; |
jf1vrr | 0:6e98d1ce9934 | 32 | } |
jf1vrr | 0:6e98d1ce9934 | 33 | |
jf1vrr | 0:6e98d1ce9934 | 34 | int main() { |
jf1vrr | 0:6e98d1ce9934 | 35 | float SetFreq; |
jf1vrr | 0:6e98d1ce9934 | 36 | uint32_t temp, freqdata; |
jf1vrr | 0:6e98d1ce9934 | 37 | uint16_t Uptemp, Lowtemp; |
jf1vrr | 0:6e98d1ce9934 | 38 | int begin, end; |
jf1vrr | 0:6e98d1ce9934 | 39 | |
jf1vrr | 0:6e98d1ce9934 | 40 | SCLK = 1; |
jf1vrr | 0:6e98d1ce9934 | 41 | SDATA = 0; |
jf1vrr | 0:6e98d1ce9934 | 42 | FSYNC = 1; |
jf1vrr | 0:6e98d1ce9934 | 43 | |
jf1vrr | 0:6e98d1ce9934 | 44 | lcd.cls(); |
jf1vrr | 0:6e98d1ce9934 | 45 | lcd.locate(0,0); |
jf1vrr | 0:6e98d1ce9934 | 46 | lcd.printf("AD9834 test" ); |
jf1vrr | 0:6e98d1ce9934 | 47 | |
jf1vrr | 0:6e98d1ce9934 | 48 | timer.start(); |
jf1vrr | 0:6e98d1ce9934 | 49 | begin = timer.read_us(); |
jf1vrr | 0:6e98d1ce9934 | 50 | for ( freqdata = 0; freqdata < 16000000; freqdata++) { |
jf1vrr | 0:6e98d1ce9934 | 51 | |
jf1vrr | 0:6e98d1ce9934 | 52 | SetFreq = 5.592405 * (uint32_t)freqdata; |
jf1vrr | 0:6e98d1ce9934 | 53 | temp = (uint32_t)SetFreq; |
jf1vrr | 0:6e98d1ce9934 | 54 | Lowtemp = (uint16_t)(temp & 0x3FFF); |
jf1vrr | 0:6e98d1ce9934 | 55 | Uptemp = (uint16_t)((temp/16384) & 0x3FFF); |
jf1vrr | 0:6e98d1ce9934 | 56 | serial_out(0x2028); |
jf1vrr | 0:6e98d1ce9934 | 57 | serial_out(Lowtemp + 0x4000); |
jf1vrr | 0:6e98d1ce9934 | 58 | serial_out(Uptemp + 0x4000); |
jf1vrr | 0:6e98d1ce9934 | 59 | } |
jf1vrr | 0:6e98d1ce9934 | 60 | end = timer.read_us(); |
jf1vrr | 0:6e98d1ce9934 | 61 | lcd.locate(0,1); |
jf1vrr | 0:6e98d1ce9934 | 62 | lcd.printf("%duS", end - begin); |
jf1vrr | 0:6e98d1ce9934 | 63 | while (1) {} |
jf1vrr | 0:6e98d1ce9934 | 64 | |
jf1vrr | 0:6e98d1ce9934 | 65 | } |