Four Squared
/
SinWave
test00
Fork of test01 by
main.cpp@2:76f0ff8c3068, 2016-11-09 (annotated)
- Committer:
- zzl5143
- Date:
- Wed Nov 09 17:17:07 2016 +0000
- Revision:
- 2:76f0ff8c3068
- Parent:
- 1:c5360811157c
Sin wave test;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xWhitfordx | 0:77006df50c28 | 1 | #include "mbed.h" |
xWhitfordx | 0:77006df50c28 | 2 | #include "mcp4725.h" |
xWhitfordx | 0:77006df50c28 | 3 | |
xWhitfordx | 0:77006df50c28 | 4 | /** |
xWhitfordx | 0:77006df50c28 | 5 | * A test program for the MCP4725 DAC Library. This Test Application requires the following: |
xWhitfordx | 0:77006df50c28 | 6 | * * An MCP4725 connected to the I2C bus of the mbed LPC1768. |
xWhitfordx | 0:77006df50c28 | 7 | * * The analog out of the MCP1768 connected to Pin15 (analog in) of the mbed LPC1768. |
xWhitfordx | 0:77006df50c28 | 8 | * |
xWhitfordx | 0:77006df50c28 | 9 | * |
xWhitfordx | 0:77006df50c28 | 10 | * This is a stripped down version of the MCP4725_Library_Test found online, and should make the necessary commands more clear. |
xWhitfordx | 0:77006df50c28 | 11 | * Last Edited: 12/24/13, Tim Brubaker |
xWhitfordx | 0:77006df50c28 | 12 | * |
xWhitfordx | 0:77006df50c28 | 13 | */ |
xWhitfordx | 0:77006df50c28 | 14 | |
xWhitfordx | 0:77006df50c28 | 15 | DigitalOut testLed(LED1); |
xWhitfordx | 0:77006df50c28 | 16 | Serial pc(USBTX, USBRX); |
xWhitfordx | 0:77006df50c28 | 17 | AnalogIn analogIn(p15); |
xWhitfordx | 0:77006df50c28 | 18 | |
xWhitfordx | 0:77006df50c28 | 19 | // Class instantiation (similar to Serial pc(USBTX, USBRX) in function) |
xWhitfordx | 0:77006df50c28 | 20 | MCP4725 bacon(p9, p10, MCP4725::Fast400kHz, 0); |
xWhitfordx | 0:77006df50c28 | 21 | |
xWhitfordx | 0:77006df50c28 | 22 | |
xWhitfordx | 0:77006df50c28 | 23 | int main() |
xWhitfordx | 0:77006df50c28 | 24 | { |
xWhitfordx | 0:77006df50c28 | 25 | // Print to terminal |
xWhitfordx | 0:77006df50c28 | 26 | pc.printf("Ready.......FIGHT!\r\n"); |
xWhitfordx | 1:c5360811157c | 27 | double freqf; |
zzl5143 | 2:76f0ff8c3068 | 28 | double buffer [100]; |
zzl5143 | 2:76f0ff8c3068 | 29 | int cut = 0; |
zzl5143 | 2:76f0ff8c3068 | 30 | |
xWhitfordx | 1:c5360811157c | 31 | // if statement |
xWhitfordx | 1:c5360811157c | 32 | //freqf = 0.5; |
xWhitfordx | 1:c5360811157c | 33 | freqf = 0.05; |
zzl5143 | 2:76f0ff8c3068 | 34 | |
zzl5143 | 2:76f0ff8c3068 | 35 | while( cut < 100){ |
zzl5143 | 2:76f0ff8c3068 | 36 | buffer[ cut ] = sin( 2 * 3.1415926 * cut / 100); |
zzl5143 | 2:76f0ff8c3068 | 37 | cut++; |
zzl5143 | 2:76f0ff8c3068 | 38 | } |
zzl5143 | 2:76f0ff8c3068 | 39 | |
xWhitfordx | 1:c5360811157c | 40 | |
zzl5143 | 2:76f0ff8c3068 | 41 | |
xWhitfordx | 0:77006df50c28 | 42 | while(1) { |
zzl5143 | 2:76f0ff8c3068 | 43 | /* |
xWhitfordx | 0:77006df50c28 | 44 | testLed = 1; |
xWhitfordx | 1:c5360811157c | 45 | wait(freqf); |
xWhitfordx | 0:77006df50c28 | 46 | // Write to DAC register (not EEPROM). Documentation in library files. |
xWhitfordx | 1:c5360811157c | 47 | bacon.write(MCP4725::Normal, (0xFFF * (1.0/3.32) ), false); |
xWhitfordx | 0:77006df50c28 | 48 | testLed = 0; |
xWhitfordx | 1:c5360811157c | 49 | pc.printf("Value is %f V \r\n",analogIn.read()*3.3); |
xWhitfordx | 1:c5360811157c | 50 | wait(freqf); |
xWhitfordx | 1:c5360811157c | 51 | bacon.write(MCP4725::Normal, (0x000 * (1.0/3.3) ), false); |
zzl5143 | 2:76f0ff8c3068 | 52 | */ |
zzl5143 | 2:76f0ff8c3068 | 53 | |
zzl5143 | 2:76f0ff8c3068 | 54 | |
zzl5143 | 2:76f0ff8c3068 | 55 | |
zzl5143 | 2:76f0ff8c3068 | 56 | testLed = 1; |
zzl5143 | 2:76f0ff8c3068 | 57 | |
zzl5143 | 2:76f0ff8c3068 | 58 | if ( cut == 100) |
zzl5143 | 2:76f0ff8c3068 | 59 | { |
zzl5143 | 2:76f0ff8c3068 | 60 | cut = 0; |
zzl5143 | 2:76f0ff8c3068 | 61 | } |
zzl5143 | 2:76f0ff8c3068 | 62 | |
zzl5143 | 2:76f0ff8c3068 | 63 | bacon.write(MCP4725::Normal, (buffer[cut] * 0xFFF * (1.0/3.32) ), false); |
zzl5143 | 2:76f0ff8c3068 | 64 | cut++; |
zzl5143 | 2:76f0ff8c3068 | 65 | |
zzl5143 | 2:76f0ff8c3068 | 66 | wait(freqf/100); |
xWhitfordx | 1:c5360811157c | 67 | |
xWhitfordx | 0:77006df50c28 | 68 | // Print ADC measurement to terminal. Scale factor of 3.3 needed for internal ADC. |
xWhitfordx | 0:77006df50c28 | 69 | pc.printf("Value is %f V \r\n",analogIn.read()*3.3); |
zzl5143 | 2:76f0ff8c3068 | 70 | |
xWhitfordx | 0:77006df50c28 | 71 | } |
xWhitfordx | 0:77006df50c28 | 72 | } |