This program shows, how a serial interrupt can be handled. Here a state machine is set up where the states can be changed from \'offline\' to \'online\' and backwards over UART
Revision 0:edfedf459fb2, committed 2011-04-20
- Comitter:
- goeckeritz
- Date:
- Wed Apr 20 10:00:26 2011 +0000
- Commit message:
- initial upload
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Wed Apr 20 10:00:26 2011 +0000
@@ -0,0 +1,47 @@
+#include "mbed.h"
+
+Serial pc(USBTX, USBRX); // tx, rx
+PwmOut led(LED1);
+
+DigitalOut led2(LED2, "led2");
+DigitalOut led3(LED3, "led3");
+DigitalOut led4(LED4, "led4");
+bool lineState = 0;
+
+char string[BUFSIZ];
+
+void allOn()
+{
+ pc.scanf("%s", &string);
+
+ //if(pc.readable()){
+ //pc.scanf("%s", &string);
+
+ if(!strcmp(string, "#online"))
+ {
+ lineState = 1;
+ pc.printf("This thing is online\n");
+ }
+ if(!strcmp(string, "#offline"))
+ {
+ lineState = 0;
+ pc.printf("This thing is offline\n");
+ }
+ pc.printf("%s\n", string);
+
+ led2 =! led2;
+ led3 =! led3;
+ led4 =! led4;
+}
+
+
+
+int main() {
+ pc.printf("Serial interrupt handler state machine\nstate changeble by typing '#online' or '#offline'\n\n");
+ pc.attach(&allOn);
+
+ while(1) {
+ wait(1);
+ pc.printf("lineState: %i\n",lineState);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Apr 20 10:00:26 2011 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/63bcd7ba4912