Keith Stokely
/
CP4_LDM_Test_Blue
Blue LDM test for CP4
main.cpp@1:5c0202cb8e6d, 2018-12-18 (annotated)
- Committer:
- kstokely
- Date:
- Tue Dec 18 18:10:14 2018 +0000
- Revision:
- 1:5c0202cb8e6d
- Parent:
- 0:c57b9d018b9f
- Child:
- 2:a29fc54a61cb
Update with Serial control and PWM line for clk TTL synchronization
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kstokely | 0:c57b9d018b9f | 1 | #include "mbed.h" |
kstokely | 1:5c0202cb8e6d | 2 | #include <string> |
kstokely | 0:c57b9d018b9f | 3 | |
kstokely | 0:c57b9d018b9f | 4 | Serial pc(USBTX, USBRX); // tx, rx |
kstokely | 1:5c0202cb8e6d | 5 | PwmOut mclk(p24); |
kstokely | 1:5c0202cb8e6d | 6 | DigitalOut mout1(p15); |
kstokely | 1:5c0202cb8e6d | 7 | DigitalOut mout2(p28); |
kstokely | 1:5c0202cb8e6d | 8 | InterruptIn mIn(p21); |
kstokely | 1:5c0202cb8e6d | 9 | |
kstokely | 1:5c0202cb8e6d | 10 | AnalogOut mA(p18); |
kstokely | 0:c57b9d018b9f | 11 | |
kstokely | 0:c57b9d018b9f | 12 | float brightness = 1.0; |
kstokely | 0:c57b9d018b9f | 13 | |
kstokely | 1:5c0202cb8e6d | 14 | |
kstokely | 1:5c0202cb8e6d | 15 | void handler() |
kstokely | 1:5c0202cb8e6d | 16 | { |
kstokely | 1:5c0202cb8e6d | 17 | mout2 = 1; |
kstokely | 1:5c0202cb8e6d | 18 | wait(0.25); |
kstokely | 1:5c0202cb8e6d | 19 | mout2 = 0; |
kstokely | 1:5c0202cb8e6d | 20 | } |
kstokely | 1:5c0202cb8e6d | 21 | |
kstokely | 1:5c0202cb8e6d | 22 | void blink( int n ) |
kstokely | 1:5c0202cb8e6d | 23 | { |
kstokely | 1:5c0202cb8e6d | 24 | for(int i = 0; i<5; i++) |
kstokely | 1:5c0202cb8e6d | 25 | { |
kstokely | 1:5c0202cb8e6d | 26 | mout1 = 1; |
kstokely | 1:5c0202cb8e6d | 27 | wait(0.25); |
kstokely | 1:5c0202cb8e6d | 28 | mout1 = 0; |
kstokely | 1:5c0202cb8e6d | 29 | } |
kstokely | 1:5c0202cb8e6d | 30 | } |
kstokely | 1:5c0202cb8e6d | 31 | |
kstokely | 1:5c0202cb8e6d | 32 | |
kstokely | 0:c57b9d018b9f | 33 | int main() { |
kstokely | 1:5c0202cb8e6d | 34 | pc.printf("Enter Voltaage and Press Enter\n\r"); |
kstokely | 1:5c0202cb8e6d | 35 | string instr; |
kstokely | 1:5c0202cb8e6d | 36 | float voltage; |
kstokely | 1:5c0202cb8e6d | 37 | |
kstokely | 1:5c0202cb8e6d | 38 | mIn.rise(&handler); |
kstokely | 1:5c0202cb8e6d | 39 | |
kstokely | 1:5c0202cb8e6d | 40 | mclk.period_us(400); |
kstokely | 1:5c0202cb8e6d | 41 | mclk.write(0.50); |
kstokely | 1:5c0202cb8e6d | 42 | |
kstokely | 0:c57b9d018b9f | 43 | while(1) { |
kstokely | 0:c57b9d018b9f | 44 | char c = pc.getc(); |
kstokely | 1:5c0202cb8e6d | 45 | |
kstokely | 1:5c0202cb8e6d | 46 | if( c == 13 ) |
kstokely | 1:5c0202cb8e6d | 47 | { |
kstokely | 1:5c0202cb8e6d | 48 | voltage = atof( instr.c_str() ); |
kstokely | 1:5c0202cb8e6d | 49 | |
kstokely | 1:5c0202cb8e6d | 50 | if( voltage == 0 || voltage > 3.3 ) |
kstokely | 1:5c0202cb8e6d | 51 | { |
kstokely | 1:5c0202cb8e6d | 52 | pc.printf("ERROR\n\r"); |
kstokely | 1:5c0202cb8e6d | 53 | } |
kstokely | 1:5c0202cb8e6d | 54 | else |
kstokely | 1:5c0202cb8e6d | 55 | { |
kstokely | 1:5c0202cb8e6d | 56 | mA.write( voltage / 3.3 ); |
kstokely | 1:5c0202cb8e6d | 57 | pc.printf("Voltage set to %3fV\n\r", voltage); |
kstokely | 1:5c0202cb8e6d | 58 | } |
kstokely | 1:5c0202cb8e6d | 59 | |
kstokely | 1:5c0202cb8e6d | 60 | instr.clear(); |
kstokely | 1:5c0202cb8e6d | 61 | |
kstokely | 1:5c0202cb8e6d | 62 | } |
kstokely | 1:5c0202cb8e6d | 63 | |
kstokely | 1:5c0202cb8e6d | 64 | else |
kstokely | 1:5c0202cb8e6d | 65 | { |
kstokely | 1:5c0202cb8e6d | 66 | instr.push_back(c); |
kstokely | 1:5c0202cb8e6d | 67 | } |
kstokely | 1:5c0202cb8e6d | 68 | |
kstokely | 0:c57b9d018b9f | 69 | if((c == 'u') && (brightness < 1.0)) { |
kstokely | 0:c57b9d018b9f | 70 | brightness += 0.01; |
kstokely | 1:5c0202cb8e6d | 71 | |
kstokely | 0:c57b9d018b9f | 72 | } |
kstokely | 0:c57b9d018b9f | 73 | if((c == 'd') && (brightness > 0.0)) { |
kstokely | 0:c57b9d018b9f | 74 | brightness -= 0.01; |
kstokely | 1:5c0202cb8e6d | 75 | |
kstokely | 0:c57b9d018b9f | 76 | } |
kstokely | 1:5c0202cb8e6d | 77 | |
kstokely | 1:5c0202cb8e6d | 78 | if( c == 'b' && brightness <= 1.0) |
kstokely | 1:5c0202cb8e6d | 79 | { |
kstokely | 1:5c0202cb8e6d | 80 | blink(5); |
kstokely | 1:5c0202cb8e6d | 81 | } |
kstokely | 1:5c0202cb8e6d | 82 | |
kstokely | 1:5c0202cb8e6d | 83 | |
kstokely | 0:c57b9d018b9f | 84 | |
kstokely | 0:c57b9d018b9f | 85 | } |
kstokely | 0:c57b9d018b9f | 86 | } |