Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of FRDM_serial_pc_board_pass_through by
Revision 1:4d30bb984196, committed 2014-05-01
- Comitter:
- subtask
- Date:
- Thu May 01 02:07:51 2014 +0000
- Parent:
- 0:bab6dd4a9c11
- Commit message:
- test code
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| mbed-rtos.lib | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sat Oct 05 19:46:21 2013 +0000
+++ b/main.cpp Thu May 01 02:07:51 2014 +0000
@@ -1,20 +1,76 @@
#include "mbed.h"
+#include "rtos.h"
Serial pc(USBTX, USBRX);
//TX RX pins, see https://mbed.org/handbook/mbed-FRDM-KL25Z
-Serial uart(PTC4, PTC3);
+Serial uart(p9, p10);
//to test is you can use a hard bridge (piece of cable) between PTC4 and PTC3 open a terminal and write something :)
//you can integrate this to improve some interesting aplicattions like this:
//http://www.instructables.com/id/Temperature-sensor--weatherstation/http://www.instructables.com/id/Temperature-sensor--weatherstation/
DigitalOut pc_activity(LED1);
DigitalOut uart_activity(LED2);
+DigitalIn receive(p10);
+
+Timer t;
+int state = 0;
+int period = 0;
+int baud_rate = 0;
+void baud_thread(void const *args) {
+ while (true) {
+ uart.putc(0x55);
+ Thread::wait(1000);
+ if (period)
+ pc.printf("baud rate %d ", baud_rate);
+ }
+}
+
+void get_rate(int *baud_rate) {
+ if (*baud_rate > 90000 && *baud_rate < (int)(125200))
+ *baud_rate = 115200;
+ else if (*baud_rate > (int)0.9*9600 && *baud_rate < (int)1.1*9600)
+ *baud_rate = 9600;
+ else
+ *baud_rate = 0;
+}
+
+
int main() {
+
+ int stop = 0;
+ int counter = 0;
+ uart.baud(115200);
+ Thread thread(baud_thread);
+
+ pc.printf("started \n");
while(1) {
+ if (state == 0)
+ if(receive) {
+ state = 1;
+ }
+
+ if (state == 1)
+ if(!receive) {
+ t.start();
+ state = 2;
+ }
+
+ if (state == 2)
+ if(receive) {
+ t.stop();
+ period = t.read_us();
+ baud_rate = (int)(1.0/((float)t.read_us()/1000000.0));
+ get_rate(&baud_rate);
+ uart.putc(0xAA);
+ t.reset();
+ state = 0;
+ }
+
if(pc.readable()) {
uart.putc(pc.getc());
pc_activity = !pc_activity;
}
+
if(uart.readable()) {
pc.putc(uart.getc());
uart_activity = !uart_activity;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rtos.lib Thu May 01 02:07:51 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-rtos/#4ef72665e2c8
