Program to control an accelerometer, motors and a rangefinder using the ScmRTOS ported to mbed. (Work in progress and buggy)
Hexacopter/serial_out.h@0:9b057566f9ee, 2010-11-01 (annotated)
- Committer:
- jberry
- Date:
- Mon Nov 01 20:39:01 2010 +0000
- Revision:
- 0:9b057566f9ee
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jberry | 0:9b057566f9ee | 1 | #pragma once |
jberry | 0:9b057566f9ee | 2 | #ifndef SERIAL_OUT_H |
jberry | 0:9b057566f9ee | 3 | #define SERIAL_OUT_H |
jberry | 0:9b057566f9ee | 4 | #include <processes.h> |
jberry | 0:9b057566f9ee | 5 | #include <Mutexes.h> |
jberry | 0:9b057566f9ee | 6 | #include <channels.h> |
jberry | 0:9b057566f9ee | 7 | #include <serial.h> |
jberry | 0:9b057566f9ee | 8 | //DigitalOut led3(LED3); |
jberry | 0:9b057566f9ee | 9 | extern BusOut leds; |
jberry | 0:9b057566f9ee | 10 | template<> OS_PROCESS void Serial_Out::Exec() //Output stream handling process |
jberry | 0:9b057566f9ee | 11 | { |
jberry | 0:9b057566f9ee | 12 | |
jberry | 0:9b057566f9ee | 13 | |
jberry | 0:9b057566f9ee | 14 | char temp1 = 0; |
jberry | 0:9b057566f9ee | 15 | //led3 = 0; |
jberry | 0:9b057566f9ee | 16 | //char buf[50] = "output process working.\n"; |
jberry | 0:9b057566f9ee | 17 | for(;;) |
jberry | 0:9b057566f9ee | 18 | { |
jberry | 0:9b057566f9ee | 19 | //Sleep(500); |
jberry | 0:9b057566f9ee | 20 | TX_channel.pop(temp1); |
jberry | 0:9b057566f9ee | 21 | leds = 0x8; |
jberry | 0:9b057566f9ee | 22 | //wait_ms(200); //simulate delays |
jberry | 0:9b057566f9ee | 23 | //Sleep(10); |
jberry | 0:9b057566f9ee | 24 | //led3 = !led3; |
jberry | 0:9b057566f9ee | 25 | //OUT->printf(buf); |
jberry | 0:9b057566f9ee | 26 | //if(OUT == &USB) |
jberry | 0:9b057566f9ee | 27 | //{ |
jberry | 0:9b057566f9ee | 28 | //Serial_Mutex.Lock(); |
jberry | 0:9b057566f9ee | 29 | //XB_Mutex.Lock(); |
jberry | 0:9b057566f9ee | 30 | if(OUT->writeable()) |
jberry | 0:9b057566f9ee | 31 | { |
jberry | 0:9b057566f9ee | 32 | OUT->putc(temp1); |
jberry | 0:9b057566f9ee | 33 | |
jberry | 0:9b057566f9ee | 34 | |
jberry | 0:9b057566f9ee | 35 | |
jberry | 0:9b057566f9ee | 36 | |
jberry | 0:9b057566f9ee | 37 | |
jberry | 0:9b057566f9ee | 38 | //XB_Mutex.Unlock(); |
jberry | 0:9b057566f9ee | 39 | } |
jberry | 0:9b057566f9ee | 40 | else |
jberry | 0:9b057566f9ee | 41 | { |
jberry | 0:9b057566f9ee | 42 | //TX_channel.push_front(temp1); |
jberry | 0:9b057566f9ee | 43 | //OUT->printf("output is not writeable!\n"); |
jberry | 0:9b057566f9ee | 44 | //Sleep(0.5); //sleep |
jberry | 0:9b057566f9ee | 45 | } |
jberry | 0:9b057566f9ee | 46 | //Serial_Mutex.Unlock(); |
jberry | 0:9b057566f9ee | 47 | //} |
jberry | 0:9b057566f9ee | 48 | |
jberry | 0:9b057566f9ee | 49 | |
jberry | 0:9b057566f9ee | 50 | |
jberry | 0:9b057566f9ee | 51 | leds = 0x8; |
jberry | 0:9b057566f9ee | 52 | |
jberry | 0:9b057566f9ee | 53 | } |
jberry | 0:9b057566f9ee | 54 | } |
jberry | 0:9b057566f9ee | 55 | |
jberry | 0:9b057566f9ee | 56 | |
jberry | 0:9b057566f9ee | 57 | #endif |
jberry | 0:9b057566f9ee | 58 | |
jberry | 0:9b057566f9ee | 59 | |
jberry | 0:9b057566f9ee | 60 |