Cooper Liu
/
Eurobot2013_IR
Eurobot 2013 IR testbench
main.cpp@1:818904abef3d, 2012-11-14 (annotated)
- Committer:
- xiaxia686
- Date:
- Wed Nov 14 18:44:03 2012 +0000
- Revision:
- 1:818904abef3d
- Parent:
- 0:5ebe36076172
Working PWM;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xiaxia686 | 1:818904abef3d | 1 | #include "mbed.h" |
xiaxia686 | 1:818904abef3d | 2 | #include "PwmIn.h" |
xiaxia686 | 1:818904abef3d | 3 | #include "globals.h" |
xiaxia686 | 1:818904abef3d | 4 | #include "rtos.h" |
xiaxia686 | 1:818904abef3d | 5 | |
xiaxia686 | 1:818904abef3d | 6 | #define PWM_INVERT |
xiaxia686 | 1:818904abef3d | 7 | |
xiaxia686 | 1:818904abef3d | 8 | DigitalOut led1(LED1); |
xiaxia686 | 1:818904abef3d | 9 | DigitalOut led2(LED2); |
xiaxia686 | 1:818904abef3d | 10 | Serial pc(USBTX, USBRX); // tx, rx |
xiaxia686 | 1:818904abef3d | 11 | |
xiaxia686 | 1:818904abef3d | 12 | PwmIn My_PWM(p30); |
xiaxia686 | 1:818904abef3d | 13 | float my_dutycycle; |
xiaxia686 | 1:818904abef3d | 14 | Semaphore serial_sema(1); |
xiaxia686 | 1:818904abef3d | 15 | |
xiaxia686 | 1:818904abef3d | 16 | void PWM_Callback(float dutycycle) { |
xiaxia686 | 1:818904abef3d | 17 | led1 = !led1; |
xiaxia686 | 1:818904abef3d | 18 | my_dutycycle = dutycycle; |
xiaxia686 | 1:818904abef3d | 19 | serial_sema.release(); |
xiaxia686 | 1:818904abef3d | 20 | |
xiaxia686 | 1:818904abef3d | 21 | } |
xiaxia686 | 1:818904abef3d | 22 | |
xiaxia686 | 1:818904abef3d | 23 | |
xiaxia686 | 1:818904abef3d | 24 | void serial_thread(void const *argument) { |
xiaxia686 | 1:818904abef3d | 25 | while (true) { |
xiaxia686 | 1:818904abef3d | 26 | serial_sema.wait(); |
xiaxia686 | 1:818904abef3d | 27 | printf("dutycycle: %0.4f \n\r", my_dutycycle); |
xiaxia686 | 1:818904abef3d | 28 | } |
xiaxia686 | 1:818904abef3d | 29 | } |
xiaxia686 | 1:818904abef3d | 30 | |
xiaxia686 | 1:818904abef3d | 31 | int main() { |
xiaxia686 | 1:818904abef3d | 32 | pc.baud(19200); |
xiaxia686 | 1:818904abef3d | 33 | pc.printf("Hello from mbed\n"); |
xiaxia686 | 1:818904abef3d | 34 | |
xiaxia686 | 1:818904abef3d | 35 | My_PWM.callbackfunc = PWM_Callback; |
xiaxia686 | 1:818904abef3d | 36 | |
xiaxia686 | 1:818904abef3d | 37 | Thread thread(serial_thread); |
xiaxia686 | 1:818904abef3d | 38 | |
xiaxia686 | 1:818904abef3d | 39 | while (true) { |
xiaxia686 | 1:818904abef3d | 40 | Thread::wait(osWaitForever); |
xiaxia686 | 1:818904abef3d | 41 | } |
xiaxia686 | 1:818904abef3d | 42 | } |