]> Pileus Git - ~andy/csm213a-hw/commitdiff
Add UART 1/2 testing
authorAndy Spencer <andy753421@gmail.com>
Mon, 3 Mar 2014 21:34:03 +0000 (21:34 +0000)
committerAndy Spencer <andy753421@gmail.com>
Mon, 3 Mar 2014 21:34:03 +0000 (21:34 +0000)
hw2/main.cpp

index 436f750508e6f815b32c6d2c617c8a054c2631dd..aac88f2c0dccf3962b60f5656b42089b4507b082 100644 (file)
@@ -99,7 +99,7 @@ void serial_send_sync(void)
 /**\r
  * Output external event received message\r
  *   event: id of the received event\r
- *   time:  compensated timestamp of the event \r
+ *   time:  compensated timestamp of the event\r
  */\r
 void serial_send_event(uint16_t event, ntime_t *time)\r
 {\r
@@ -116,17 +116,50 @@ void serial_receive(void)
  * Data definitions *\r
  ********************/\r
 \r
+// LEDs\r
 DigitalOut led1(LED1);\r
 DigitalOut led2(LED2);\r
 \r
+// UARTs         tx      rx\r
+Serial     uart0(USBTX,  USBRX);\r
+Serial     uart1(PTE0,   PTE1);\r
+Serial     uart2(PTE16,  PTE17);\r
+\r
 /********\r
  * Main *\r
  ********/\r
 \r
+void test_uart(void)\r
+{\r
+       char xmt[32] = "hello, world";\r
+       char rcv[32] = {};\r
+\r
+       printf("start\r\n");\r
+       for (int i = 0; xmt[i]; i++) {\r
+               uart1.putc(xmt[i]);\r
+               rcv[i] = uart2.getc();\r
+       }\r
+       printf("xmt: %s\r\n", xmt);\r
+       printf("rcv: %s\r\n", rcv);\r
+}\r
+\r
+void test_leds(void)\r
+{\r
+       led1 = 1; led2 = 0; wait(0.1);\r
+       led1 = 0; led2 = 1; wait(0.1);\r
+}\r
+\r
 int main(int argc, char **argv)\r
 {\r
-    while (1) {\r
-        led1 = 1; led2 = 0; wait(0.1);\r
-        led1 = 0; led2 = 1; wait(0.1);\r
-    }\r
+       uart0.baud(115200);\r
+       uart1.baud(115200);\r
+       uart2.baud(115200);\r
+\r
+       test_uart();\r
+       test_leds();\r
+\r
+       while (1) {\r
+               printf("tick\r\n");\r
+               test_leds();\r
+       }\r
 }\r