Lab2 code
Dependencies: mbed
main.cpp@0:7cab971d062d, 2018-01-31 (annotated)
- Committer:
- m0t0
- Date:
- Wed Jan 31 00:44:59 2018 +0000
- Revision:
- 0:7cab971d062d
LAB2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
m0t0 | 0:7cab971d062d | 1 | |
m0t0 | 0:7cab971d062d | 2 | #include "mbed.h" |
m0t0 | 0:7cab971d062d | 3 | Serial pc(USBTX, USBRX); |
m0t0 | 0:7cab971d062d | 4 | #if !DEVICE_ANALOGOUT |
m0t0 | 0:7cab971d062d | 5 | #error You cannot use this example as the AnalogOut is not supported on this device. |
m0t0 | 0:7cab971d062d | 6 | #else |
m0t0 | 0:7cab971d062d | 7 | AnalogOut my_output(PA_4); |
m0t0 | 0:7cab971d062d | 8 | #endif |
m0t0 | 0:7cab971d062d | 9 | |
m0t0 | 0:7cab971d062d | 10 | #define PI (3.141592653589793238462) |
m0t0 | 0:7cab971d062d | 11 | #define AMPLITUDE (1.0) // x * 3.3V |
m0t0 | 0:7cab971d062d | 12 | #define PHASE (PI * 1) // 2*pi is one period |
m0t0 | 0:7cab971d062d | 13 | #define RANGE (0x7FFF) |
m0t0 | 0:7cab971d062d | 14 | #define OFFSET (0x7FFF) |
m0t0 | 0:7cab971d062d | 15 | |
m0t0 | 0:7cab971d062d | 16 | // Configuration for sinewave output |
m0t0 | 0:7cab971d062d | 17 | #define BUFFER_SIZE (360) |
m0t0 | 0:7cab971d062d | 18 | |
m0t0 | 0:7cab971d062d | 19 | uint16_t buffer[BUFFER_SIZE]; |
m0t0 | 0:7cab971d062d | 20 | |
m0t0 | 0:7cab971d062d | 21 | void DCout(double Vout){ |
m0t0 | 0:7cab971d062d | 22 | double HEXval; |
m0t0 | 0:7cab971d062d | 23 | HEXval = Vout * 19763.0; |
m0t0 | 0:7cab971d062d | 24 | my_output.write_u16(HEXval); |
m0t0 | 0:7cab971d062d | 25 | } |
m0t0 | 0:7cab971d062d | 26 | |
m0t0 | 0:7cab971d062d | 27 | char s [30]; |
m0t0 | 0:7cab971d062d | 28 | |
m0t0 | 0:7cab971d062d | 29 | void scan(){ |
m0t0 | 0:7cab971d062d | 30 | |
m0t0 | 0:7cab971d062d | 31 | int i = 0; |
m0t0 | 0:7cab971d062d | 32 | |
m0t0 | 0:7cab971d062d | 33 | |
m0t0 | 0:7cab971d062d | 34 | while(i<30){ |
m0t0 | 0:7cab971d062d | 35 | s[i] = pc.getc(); |
m0t0 | 0:7cab971d062d | 36 | if(s[i] != 0X0d){ |
m0t0 | 0:7cab971d062d | 37 | pc.putc(s[i]); |
m0t0 | 0:7cab971d062d | 38 | i++; |
m0t0 | 0:7cab971d062d | 39 | } |
m0t0 | 0:7cab971d062d | 40 | else{ |
m0t0 | 0:7cab971d062d | 41 | break; |
m0t0 | 0:7cab971d062d | 42 | } |
m0t0 | 0:7cab971d062d | 43 | } |
m0t0 | 0:7cab971d062d | 44 | |
m0t0 | 0:7cab971d062d | 45 | DCout(atof(s)); |
m0t0 | 0:7cab971d062d | 46 | |
m0t0 | 0:7cab971d062d | 47 | |
m0t0 | 0:7cab971d062d | 48 | scan(); |
m0t0 | 0:7cab971d062d | 49 | |
m0t0 | 0:7cab971d062d | 50 | |
m0t0 | 0:7cab971d062d | 51 | } |
m0t0 | 0:7cab971d062d | 52 | |
m0t0 | 0:7cab971d062d | 53 | |
m0t0 | 0:7cab971d062d | 54 | int main() { |
m0t0 | 0:7cab971d062d | 55 | |
m0t0 | 0:7cab971d062d | 56 | char p1 [] = "Enter Voltage"; |
m0t0 | 0:7cab971d062d | 57 | pc.printf("%s\n", p1); |
m0t0 | 0:7cab971d062d | 58 | scan(); |
m0t0 | 0:7cab971d062d | 59 | } |
m0t0 | 0:7cab971d062d | 60 |