TVZ test

Dependencies:   mbed

main.cpp

Committer:
cvitas
Date:
2014-01-08
Revision:
2:2e261aa02cd0
Parent:
1:abeac322d8d8
Child:
3:a4a5d9c0bc13

File content as of revision 2:2e261aa02cd0:

#include "mbed.h"

Serial async_port(p9, p10);          //set up TX and RX on pins 9 and 10
DigitalOut red_led(LED4);             //red led
DigitalOut green_led(LED3);           //green led
DigitalOut RXDIN (LED1);
DigitalOut strobe(p7);               //a strobe to trigger the scope
DigitalIn switch_ip1(p5);
DigitalIn switch_ip2(p6);
Serial pc(USBTX, USBRX);

char switch_word ;                   //the word we will send
char recd_val;                       //the received value 
int valueADC;
char Outbuff[2];
char Inbuff[2];
int valueSensA;
  
int main() {
  async_port.baud(9600);             //set baud rate to 9600 (ie default)
  //accept default format, of 8 bits, no parity
  while (1){
    //Set up the word to be sent, by testing switch inputs
    switch_word=0xa0;                 //set up a recognisable output pattern
    if (switch_ip1==1)
      switch_word=switch_word|0x01;   //OR in lsb
    if (switch_ip2==1)
      switch_word=switch_word|0x02;   //OR in next lsb
    strobe =1;                        //short strobe pulse 
    wait_us(10);
    strobe=0;
    valueADC = 0x0302;
    Outbuff[0] = valueADC;
    Outbuff[1] = valueADC >> 8;
    /*
    while (async_port.writeable()==0);  //is there a place to write?
    async_port.putc(Outbuff[1]);     //transmit switch_word
    while (async_port.writeable()==0);  //is there a place to write?
    async_port.putc(Outbuff[0]);     //transmit switch_word
    */
    while (async_port.writeable()==0);  //is there a place to write?
    async_port.putc(switch_word);     //transmit switch_word
    if (async_port.readable()==1){     //is there a character to be read?
      Inbuff[1] = async_port.getc();     //if yes, t
      }
    if (async_port.readable()==1){     //is there a character to be read?
      Inbuff[0] = async_port.getc();     //if yes, t
      RXDIN = 1;
      }  
    /*if (async_port.readable()==1){     //is there a character to be read?
      recd_val=async_port.getc();     //if yes, t
      RXDIN = 1;
      }*/
    wait(0.01);
//set leds according to incoming word from slave
    red_led=0;              //preset both to 0
    green_led=0; 
    recd_val=recd_val&0x03; //AND out unwanted bits
    if (recd_val==1)
      red_led=1;
    if (recd_val==2)
      green_led=1;
    if (recd_val==3){
      red_led=1;
      green_led=1;
    }
    wait(0.5);
    RXDIN = 0;
    valueSensA = Inbuff[1]+ Inbuff[0]*256;
    pc.printf("SensA:  %d  \n\r", valueSensA);
  }    
}