Dummy program to demonstrate problems: working code
Dependencies: SLCD mbed-rtos mbed
Fork of MNG_TC by
main.cpp
- Committer:
- shreeshas95
- Date:
- 2015-07-16
- Revision:
- 9:934fdce72b3d
- Parent:
- 8:cb93c1d3209a
File content as of revision 9:934fdce72b3d:
#include "mbed.h" #include "rtos.h" #define ENDL "\r" << endl #include "SLCD.h" SLCD lcd; #define RX_TIMEOUT_LIMIT 2 #define PASS_TIME_LIMIT 1200 Serial PC(USBTX, USBRX); Serial rx1m(PTE0, PTE1); DigitalOut ledr(LED_RED); DigitalOut ledg(LED_GREEN); #include "Structures.h" struct data_list{ unsigned char val; struct data_list* next; }; namespace VAR_SPACE{ TC_list *Head_node = NULL; TC_list *last_node = NULL; int rx_state = 0; /* 0 : idle 1 : executing normal 2 : executing obosc 3 : idle 2 : obosc received incorrectly */ struct data_list *head_data; data_list *data_node; struct data_list *rx_new_node; unsigned char rx_char = 0; bool new_tc_received = false; bool execute_obosc = false; Thread *mng_tmtc_thread = NULL; } #include "crc.h" #include "SND_TM.h" #include "COM_RCV_TC.h" #include "MNG_TC.h" Timeout rx_timeout; bool pass_over = false; bool first_time = true; Timeout pass_time; void after_pass(){ pass_time.detach(); pass_over = true; } void after_receive(void){ rx_timeout.detach(); VAR_SPACE::rx_new_node->val = 0x00; VAR_SPACE::new_tc_received = true; if(first_time){ first_time = false; pass_time.attach(&after_pass, PASS_TIME_LIMIT); } } void rx_read() { VAR_SPACE::rx_char = rx1m.getc(); ledg = !ledg; VAR_SPACE::mng_tmtc_thread->signal_set(0x01); } #include "Threadfunctions.h" int main(){ printf("welcome to mng_tm_tc\r\n"); ledr = 1; PC.baud(9600); VAR_SPACE::mng_tmtc_thread = new Thread( &mng_tmtc_thread_fun ); MNG_TC::init(); lcd.printf("0000"); while(true){ // ledg = !ledg; } }