Ljubivoj Cvitas
/
SerialMBEDtoMSP430
TVZ test
main.cpp@3:a4a5d9c0bc13, 2014-01-21 (annotated)
- Committer:
- cvitas
- Date:
- Tue Jan 21 18:40:20 2014 +0000
- Revision:
- 3:a4a5d9c0bc13
- Parent:
- 2:2e261aa02cd0
- Child:
- 4:4620184bbb1f
gtgg
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cvitas | 0:5918d7a4ad04 | 1 | #include "mbed.h" |
cvitas | 0:5918d7a4ad04 | 2 | |
cvitas | 0:5918d7a4ad04 | 3 | Serial async_port(p9, p10); //set up TX and RX on pins 9 and 10 |
cvitas | 0:5918d7a4ad04 | 4 | DigitalOut red_led(LED4); //red led |
cvitas | 0:5918d7a4ad04 | 5 | DigitalOut green_led(LED3); //green led |
cvitas | 0:5918d7a4ad04 | 6 | DigitalOut RXDIN (LED1); |
cvitas | 0:5918d7a4ad04 | 7 | DigitalOut strobe(p7); //a strobe to trigger the scope |
cvitas | 0:5918d7a4ad04 | 8 | DigitalIn switch_ip1(p5); |
cvitas | 0:5918d7a4ad04 | 9 | DigitalIn switch_ip2(p6); |
cvitas | 2:2e261aa02cd0 | 10 | Serial pc(USBTX, USBRX); |
cvitas | 0:5918d7a4ad04 | 11 | |
cvitas | 3:a4a5d9c0bc13 | 12 | char header_read ; //first byte we will send |
cvitas | 3:a4a5d9c0bc13 | 13 | char param_ads; // parameter address |
cvitas | 0:5918d7a4ad04 | 14 | char recd_val; //the received value |
cvitas | 0:5918d7a4ad04 | 15 | int valueADC; |
cvitas | 3:a4a5d9c0bc13 | 16 | char Outbuff[12]; |
cvitas | 3:a4a5d9c0bc13 | 17 | char Inbuff[12]; |
cvitas | 3:a4a5d9c0bc13 | 18 | int valueSensA, valueSensB; |
cvitas | 0:5918d7a4ad04 | 19 | |
cvitas | 0:5918d7a4ad04 | 20 | int main() { |
cvitas | 0:5918d7a4ad04 | 21 | async_port.baud(9600); //set baud rate to 9600 (ie default) |
cvitas | 0:5918d7a4ad04 | 22 | //accept default format, of 8 bits, no parity |
cvitas | 0:5918d7a4ad04 | 23 | while (1){ |
cvitas | 0:5918d7a4ad04 | 24 | //Set up the word to be sent, by testing switch inputs |
cvitas | 3:a4a5d9c0bc13 | 25 | header_read=0x10; //set up a recognisable output pattern |
cvitas | 3:a4a5d9c0bc13 | 26 | param_ads = 0; |
cvitas | 0:5918d7a4ad04 | 27 | if (switch_ip1==1) |
cvitas | 3:a4a5d9c0bc13 | 28 | param_ads =param_ads | 0x01; //OR in lsb |
cvitas | 0:5918d7a4ad04 | 29 | if (switch_ip2==1) |
cvitas | 3:a4a5d9c0bc13 | 30 | param_ads =param_ads | 0x02; //OR in next lsb |
cvitas | 3:a4a5d9c0bc13 | 31 | |
cvitas | 0:5918d7a4ad04 | 32 | strobe =1; //short strobe pulse |
cvitas | 0:5918d7a4ad04 | 33 | wait_us(10); |
cvitas | 0:5918d7a4ad04 | 34 | strobe=0; |
cvitas | 3:a4a5d9c0bc13 | 35 | |
cvitas | 0:5918d7a4ad04 | 36 | valueADC = 0x0302; |
cvitas | 0:5918d7a4ad04 | 37 | Outbuff[0] = valueADC; |
cvitas | 0:5918d7a4ad04 | 38 | Outbuff[1] = valueADC >> 8; |
cvitas | 1:abeac322d8d8 | 39 | /* |
cvitas | 0:5918d7a4ad04 | 40 | while (async_port.writeable()==0); //is there a place to write? |
cvitas | 0:5918d7a4ad04 | 41 | async_port.putc(Outbuff[1]); //transmit switch_word |
cvitas | 0:5918d7a4ad04 | 42 | while (async_port.writeable()==0); //is there a place to write? |
cvitas | 0:5918d7a4ad04 | 43 | async_port.putc(Outbuff[0]); //transmit switch_word |
cvitas | 1:abeac322d8d8 | 44 | */ |
cvitas | 0:5918d7a4ad04 | 45 | while (async_port.writeable()==0); //is there a place to write? |
cvitas | 3:a4a5d9c0bc13 | 46 | async_port.putc(header_read); //transmit haeder |
cvitas | 3:a4a5d9c0bc13 | 47 | while (async_port.writeable()==0); //is there a place to write? |
cvitas | 3:a4a5d9c0bc13 | 48 | async_port.putc(param_ads); //transmit parameter address |
cvitas | 3:a4a5d9c0bc13 | 49 | |
cvitas | 3:a4a5d9c0bc13 | 50 | |
cvitas | 3:a4a5d9c0bc13 | 51 | |
cvitas | 3:a4a5d9c0bc13 | 52 | if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 3:a4a5d9c0bc13 | 53 | Inbuff[0] = async_port.getc(); //if yes, t |
cvitas | 3:a4a5d9c0bc13 | 54 | } |
cvitas | 0:5918d7a4ad04 | 55 | if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 0:5918d7a4ad04 | 56 | Inbuff[1] = async_port.getc(); //if yes, t |
cvitas | 3:a4a5d9c0bc13 | 57 | } |
cvitas | 3:a4a5d9c0bc13 | 58 | if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 3:a4a5d9c0bc13 | 59 | Inbuff[2] = async_port.getc(); //if yes, t |
cvitas | 0:5918d7a4ad04 | 60 | } |
cvitas | 0:5918d7a4ad04 | 61 | if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 3:a4a5d9c0bc13 | 62 | Inbuff[3] = async_port.getc(); //if yes, t |
cvitas | 3:a4a5d9c0bc13 | 63 | |
cvitas | 3:a4a5d9c0bc13 | 64 | if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 3:a4a5d9c0bc13 | 65 | Inbuff[4] = async_port.getc(); //if yes, t |
cvitas | 3:a4a5d9c0bc13 | 66 | } |
cvitas | 3:a4a5d9c0bc13 | 67 | if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 3:a4a5d9c0bc13 | 68 | Inbuff[5] = async_port.getc(); //if yes, t |
cvitas | 3:a4a5d9c0bc13 | 69 | } |
cvitas | 3:a4a5d9c0bc13 | 70 | if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 3:a4a5d9c0bc13 | 71 | Inbuff[6] = async_port.getc(); //if yes, t |
cvitas | 3:a4a5d9c0bc13 | 72 | } |
cvitas | 3:a4a5d9c0bc13 | 73 | |
cvitas | 1:abeac322d8d8 | 74 | RXDIN = 1; |
cvitas | 0:5918d7a4ad04 | 75 | } |
cvitas | 1:abeac322d8d8 | 76 | /*if (async_port.readable()==1){ //is there a character to be read? |
cvitas | 0:5918d7a4ad04 | 77 | recd_val=async_port.getc(); //if yes, t |
cvitas | 0:5918d7a4ad04 | 78 | RXDIN = 1; |
cvitas | 1:abeac322d8d8 | 79 | }*/ |
cvitas | 0:5918d7a4ad04 | 80 | wait(0.01); |
cvitas | 0:5918d7a4ad04 | 81 | //set leds according to incoming word from slave |
cvitas | 0:5918d7a4ad04 | 82 | red_led=0; //preset both to 0 |
cvitas | 0:5918d7a4ad04 | 83 | green_led=0; |
cvitas | 0:5918d7a4ad04 | 84 | recd_val=recd_val&0x03; //AND out unwanted bits |
cvitas | 0:5918d7a4ad04 | 85 | if (recd_val==1) |
cvitas | 0:5918d7a4ad04 | 86 | red_led=1; |
cvitas | 0:5918d7a4ad04 | 87 | if (recd_val==2) |
cvitas | 0:5918d7a4ad04 | 88 | green_led=1; |
cvitas | 0:5918d7a4ad04 | 89 | if (recd_val==3){ |
cvitas | 0:5918d7a4ad04 | 90 | red_led=1; |
cvitas | 0:5918d7a4ad04 | 91 | green_led=1; |
cvitas | 0:5918d7a4ad04 | 92 | } |
cvitas | 3:a4a5d9c0bc13 | 93 | wait(1); |
cvitas | 0:5918d7a4ad04 | 94 | RXDIN = 0; |
cvitas | 3:a4a5d9c0bc13 | 95 | valueSensA = Inbuff[2]+ Inbuff[3]*256; |
cvitas | 3:a4a5d9c0bc13 | 96 | valueSensB = Inbuff[4]+ Inbuff[5]*256; |
cvitas | 3:a4a5d9c0bc13 | 97 | pc.printf("SensA: %d SensB: %d \n\r", valueSensA, valueSensB); |
cvitas | 0:5918d7a4ad04 | 98 | } |
cvitas | 0:5918d7a4ad04 | 99 | } |