Blue LDM test for CP4

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }