Yoichi Nagashima
/
CQ_nagasm_06_LPF
add - CQpub0 Mikami / FIR_LPF_Direct
Embed:
(wiki syntax)
Show/hide line numbers
sub.hpp
00001 unsigned char rxFIFO[256], txFIFO[256], raw_data[6]; 00002 unsigned char rx_top, rx_end, tx_top, tx_end, phase; 00003 int timer_value[6]; 00004 00005 RawSerial xbee(PA_2, PA_3); 00006 Ticker timer_setup; 00007 AnalogIn analog_value0(A0); 00008 AnalogIn analog_value1(A1); 00009 AnalogIn analog_value2(A2); 00010 AnalogIn analog_value3(A3); 00011 DigitalOut myled(LED1); 00012 00013 void common_setup(){ 00014 rx_top = rx_end = tx_top = tx_end = phase = 0; 00015 } 00016 00017 void timer_interrupt(){ 00018 int i; 00019 for (i=0; i<6; i++) ++timer_value[i] &= 65535; 00020 } 00021 00022 void tx_fifo_check(){ 00023 if(xbee.writeable() == 1){ 00024 if(tx_top != tx_end){ 00025 xbee.putc(txFIFO[tx_end]); 00026 ++tx_end &= 255; 00027 } 00028 } 00029 } 00030 00031 int rx_fifo_check(){ 00032 unsigned char data; 00033 if(rx_top != rx_end){ 00034 data = rxFIFO[rx_end]; 00035 ++rx_end &= 255; 00036 if (data < 33){ 00037 phase = 0; 00038 return(1); 00039 } 00040 raw_data[phase] = data; 00041 if(++phase > 5) phase = 0; 00042 return(0); 00043 } 00044 return(0); 00045 } 00046 00047 void rx_fifoset(void){ 00048 rxFIFO[rx_top] = xbee.getc(); 00049 ++rx_top &= 255; 00050 } 00051 00052 void tx_fifoset(unsigned char data){ 00053 txFIFO[tx_top] = data; 00054 ++tx_top &= 255; 00055 } 00056 00057 unsigned char hex_conv(unsigned char data){ 00058 data &= 15; 00059 if(data < 10) return(data+48); 00060 else return(data+55); 00061 } 00062 00063 unsigned char conv_hex(unsigned char data){ 00064 if((data > 47) && (data < 58)) return(data-48); 00065 else if((data > 64) && (data < 71)) return(data-55); 00066 return(0); 00067 } 00068 00069 void tx_message(int data){ 00070 int i; 00071 for (i=0; i<6; i++) tx_fifoset(hex_conv((data>>(4*(5-i))) & 15)); 00072 tx_fifoset(13); 00073 }
Generated on Sat Jul 23 2022 06:51:34 by 1.7.2