![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
flipflop test
main.cpp
- Committer:
- mikevd1
- Date:
- 2018-06-06
- Revision:
- 1:b82afb355b62
- Parent:
- 0:db474e15b188
File content as of revision 1:b82afb355b62:
/* mbed software with debugger * * author : Mike van Doorn * */ #include "mbed.h" #define slaveAdress 0x07 #define functioncode 0x02 Serial pc(USBTX, USBRX); Serial bus(PA_9,PA_10); DigitalOut led1(LED1); DigitalOut activateSN65(PA_8); int Read(void); int main() { int count = 0 ; int data = 0 ; int buffer = 0 ; int value = 0 ; activateSN65 = 0 ; pc.baud(115200); wait(1); while(1) { if ( count == 10 ) { count = 0 ; } activateSN65 = 0 ; if(bus.readable()) { data = bus.getc(); pc.putc(data); if ( data == slaveAdress && buffer == 0) { buffer = 1; // check slava adress } else if ( data == functioncode && buffer == 1) { buffer = 2; // check functioncode } else if ( buffer == 2 || buffer == 3 ) { // adress high and low if ( buffer == 2 ) { buffer = 3 ; // check starting adress hi } else { value = value + data ; buffer = 4 ; // check starting adress low } } else if ( buffer == 4 ) { // no of points hi buffer = 5 ; } else if ( buffer == 5 ) { // no of points lo buffer = 6 ; } else if ( buffer == 6 ) { //crc check buffer = 7 ; } else if ( buffer == 7 ) { //crc check buffer = 8 ; } else { buffer = 0 ; } } if ( buffer == 8 ) { if ( count < 5 ) { led1 = !led1; wait_ms(3); activateSN65 = 1 ; //adress bus.putc(slaveAdress); wait_us(900); //send function code bus.putc(functioncode); wait_us(900); // Byte count bus.putc(0x02); wait_us(900); //data bus.putc(0x01); wait_us(900); //data bus.putc(0x00); wait_us(900); // crc check bus.putc(0x31); wait_us(900); bus.putc(0xD4); buffer = 0 ; wait_ms(2) ; activateSN65 = 0 ; count++; } else { led1 = !led1; wait_ms(3); activateSN65 = 1 ; //adress bus.putc(slaveAdress); wait_us(900); //send function code bus.putc(functioncode); wait_us(900); // Byte count bus.putc(0x02); wait_us(900); //data bus.putc(0x02); wait_us(900); bus.putc(0x02); wait_us(900); // crc check bus.putc(0xB0); wait_us(900); bus.putc(0xE5); buffer = 0 ; wait_ms(2) ; activateSN65 = 0 ; count++; } } } }