Shinichiro Nakamura
/
TestProgramForBugTopic1074
This is for http://mbed.org/forum/bugs-suggestions/topic/1074/
Diff: main.cpp
- Revision:
- 0:49c0ef6111e6
- Child:
- 1:70466efca68e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Sep 08 12:53:38 2010 +0000 @@ -0,0 +1,52 @@ +/** + * Test program for a bug. (http://mbed.org/forum/bugs-suggestions/topic/1074/) + * + * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems) + * http://shinta.main.jp/ + */ + +#include "mbed.h" +#include "Semaphore.h" + +Serial ser(USBTX, USBRX); +Ticker ticker; +BusOut led(LED4, LED3, LED2, LED1); +Semaphore sem; + +char shared_resource; // This is a shared resource for example. + +#define LOCK() sem.take() +#define UNLOCK() sem.release() + +/** + * a ticker. + */ +void func_tick(void) { + led = led + 1; +} + +/** + * A call back function for serial interrupt. + */ +void func_serial_interrupt(void) { + LOCK(); + shared_resource = ser.getc(); + UNLOCK(); +} + +/** + * Entry point. + */ +int main() { + ticker.attach_us(&func_tick, 100 * 1000); + ser.attach(&func_serial_interrupt); + while(1) { + /* + * Hung up your mbed system if you hit keys on console for Serial. + */ + LOCK(); + printf("0x%x\n", shared_resource); + UNLOCK(); + wait_ms(100); + } +}