flipflop test

Dependencies:   mbed

Committer:
mikevd1
Date:
Wed Jun 06 14:29:43 2018 +0000
Revision:
1:b82afb355b62
Parent:
0:db474e15b188
flipflop 0x02

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mikevd1 0:db474e15b188 1 /* mbed software with debugger
mikevd1 0:db474e15b188 2 *
mikevd1 0:db474e15b188 3 * author : Mike van Doorn
mikevd1 0:db474e15b188 4 *
mikevd1 0:db474e15b188 5 */
mikevd1 0:db474e15b188 6
mikevd1 0:db474e15b188 7 #include "mbed.h"
mikevd1 1:b82afb355b62 8 #define slaveAdress 0x07
mikevd1 1:b82afb355b62 9 #define functioncode 0x02
mikevd1 0:db474e15b188 10
mikevd1 0:db474e15b188 11 Serial pc(USBTX, USBRX);
mikevd1 0:db474e15b188 12 Serial bus(PA_9,PA_10);
mikevd1 0:db474e15b188 13 DigitalOut led1(LED1);
mikevd1 0:db474e15b188 14 DigitalOut activateSN65(PA_8);
mikevd1 0:db474e15b188 15 int Read(void);
mikevd1 0:db474e15b188 16
mikevd1 0:db474e15b188 17 int main()
mikevd1 0:db474e15b188 18 {
mikevd1 0:db474e15b188 19 int count = 0 ;
mikevd1 0:db474e15b188 20 int data = 0 ;
mikevd1 0:db474e15b188 21 int buffer = 0 ;
mikevd1 0:db474e15b188 22 int value = 0 ;
mikevd1 0:db474e15b188 23 activateSN65 = 0 ;
mikevd1 0:db474e15b188 24 pc.baud(115200);
mikevd1 0:db474e15b188 25 wait(1);
mikevd1 0:db474e15b188 26
mikevd1 0:db474e15b188 27 while(1)
mikevd1 0:db474e15b188 28 {
mikevd1 0:db474e15b188 29 if ( count == 10 )
mikevd1 0:db474e15b188 30 {
mikevd1 0:db474e15b188 31 count = 0 ;
mikevd1 0:db474e15b188 32 }
mikevd1 0:db474e15b188 33 activateSN65 = 0 ;
mikevd1 0:db474e15b188 34 if(bus.readable())
mikevd1 0:db474e15b188 35 {
mikevd1 0:db474e15b188 36 data = bus.getc();
mikevd1 0:db474e15b188 37 pc.putc(data);
mikevd1 1:b82afb355b62 38 if ( data == slaveAdress && buffer == 0)
mikevd1 0:db474e15b188 39 {
mikevd1 1:b82afb355b62 40 buffer = 1; // check slava adress
mikevd1 0:db474e15b188 41 }
mikevd1 1:b82afb355b62 42 else if ( data == functioncode && buffer == 1)
mikevd1 0:db474e15b188 43 {
mikevd1 1:b82afb355b62 44 buffer = 2; // check functioncode
mikevd1 0:db474e15b188 45 }
mikevd1 0:db474e15b188 46 else if ( buffer == 2 || buffer == 3 )
mikevd1 0:db474e15b188 47 {
mikevd1 1:b82afb355b62 48 // adress high and low
mikevd1 0:db474e15b188 49 if ( buffer == 2 )
mikevd1 0:db474e15b188 50 {
mikevd1 1:b82afb355b62 51 buffer = 3 ; // check starting adress hi
mikevd1 0:db474e15b188 52 }
mikevd1 0:db474e15b188 53 else
mikevd1 0:db474e15b188 54 {
mikevd1 1:b82afb355b62 55 value = value + data ;
mikevd1 1:b82afb355b62 56 buffer = 4 ; // check starting adress low
mikevd1 0:db474e15b188 57 }
mikevd1 0:db474e15b188 58 }
mikevd1 1:b82afb355b62 59 else if ( buffer == 4 )
mikevd1 1:b82afb355b62 60 {
mikevd1 1:b82afb355b62 61 // no of points hi
mikevd1 1:b82afb355b62 62 buffer = 5 ;
mikevd1 1:b82afb355b62 63 }
mikevd1 0:db474e15b188 64 else if ( buffer == 5 )
mikevd1 0:db474e15b188 65 {
mikevd1 1:b82afb355b62 66 // no of points lo
mikevd1 1:b82afb355b62 67 buffer = 6 ;
mikevd1 0:db474e15b188 68 }
mikevd1 1:b82afb355b62 69 else if ( buffer == 6 )
mikevd1 0:db474e15b188 70 {
mikevd1 1:b82afb355b62 71 //crc check
mikevd1 1:b82afb355b62 72 buffer = 7 ;
mikevd1 0:db474e15b188 73 }
mikevd1 1:b82afb355b62 74 else if ( buffer == 7 )
mikevd1 1:b82afb355b62 75 {
mikevd1 1:b82afb355b62 76 //crc check
mikevd1 1:b82afb355b62 77 buffer = 8 ;
mikevd1 1:b82afb355b62 78 }
mikevd1 0:db474e15b188 79 else
mikevd1 0:db474e15b188 80 {
mikevd1 0:db474e15b188 81 buffer = 0 ;
mikevd1 0:db474e15b188 82 }
mikevd1 0:db474e15b188 83
mikevd1 0:db474e15b188 84 }
mikevd1 1:b82afb355b62 85 if ( buffer == 8 )
mikevd1 0:db474e15b188 86 {
mikevd1 0:db474e15b188 87 if ( count < 5 )
mikevd1 0:db474e15b188 88 {
mikevd1 0:db474e15b188 89 led1 = !led1;
mikevd1 0:db474e15b188 90 wait_ms(3);
mikevd1 0:db474e15b188 91 activateSN65 = 1 ;
mikevd1 0:db474e15b188 92 //adress
mikevd1 1:b82afb355b62 93 bus.putc(slaveAdress);
mikevd1 0:db474e15b188 94 wait_us(900);
mikevd1 0:db474e15b188 95 //send function code
mikevd1 1:b82afb355b62 96 bus.putc(functioncode);
mikevd1 0:db474e15b188 97 wait_us(900);
mikevd1 0:db474e15b188 98 // Byte count
mikevd1 1:b82afb355b62 99 bus.putc(0x02);
mikevd1 0:db474e15b188 100 wait_us(900);
mikevd1 0:db474e15b188 101 //data
mikevd1 0:db474e15b188 102 bus.putc(0x01);
mikevd1 0:db474e15b188 103 wait_us(900);
mikevd1 1:b82afb355b62 104 //data
mikevd1 1:b82afb355b62 105 bus.putc(0x00);
mikevd1 1:b82afb355b62 106 wait_us(900);
mikevd1 0:db474e15b188 107 // crc check
mikevd1 1:b82afb355b62 108 bus.putc(0x31);
mikevd1 0:db474e15b188 109 wait_us(900);
mikevd1 1:b82afb355b62 110 bus.putc(0xD4);
mikevd1 0:db474e15b188 111 buffer = 0 ;
mikevd1 0:db474e15b188 112 wait_ms(2) ;
mikevd1 0:db474e15b188 113 activateSN65 = 0 ;
mikevd1 0:db474e15b188 114 count++;
mikevd1 0:db474e15b188 115 }
mikevd1 0:db474e15b188 116 else
mikevd1 0:db474e15b188 117 {
mikevd1 0:db474e15b188 118 led1 = !led1;
mikevd1 0:db474e15b188 119 wait_ms(3);
mikevd1 0:db474e15b188 120 activateSN65 = 1 ;
mikevd1 0:db474e15b188 121 //adress
mikevd1 1:b82afb355b62 122 bus.putc(slaveAdress);
mikevd1 0:db474e15b188 123 wait_us(900);
mikevd1 0:db474e15b188 124 //send function code
mikevd1 1:b82afb355b62 125 bus.putc(functioncode);
mikevd1 0:db474e15b188 126 wait_us(900);
mikevd1 0:db474e15b188 127 // Byte count
mikevd1 0:db474e15b188 128 bus.putc(0x02);
mikevd1 0:db474e15b188 129 wait_us(900);
mikevd1 0:db474e15b188 130 //data
mikevd1 0:db474e15b188 131 bus.putc(0x02);
mikevd1 0:db474e15b188 132 wait_us(900);
mikevd1 0:db474e15b188 133 bus.putc(0x02);
mikevd1 0:db474e15b188 134 wait_us(900);
mikevd1 0:db474e15b188 135 // crc check
mikevd1 1:b82afb355b62 136 bus.putc(0xB0);
mikevd1 0:db474e15b188 137 wait_us(900);
mikevd1 1:b82afb355b62 138 bus.putc(0xE5);
mikevd1 0:db474e15b188 139 buffer = 0 ;
mikevd1 0:db474e15b188 140 wait_ms(2) ;
mikevd1 0:db474e15b188 141 activateSN65 = 0 ;
mikevd1 0:db474e15b188 142 count++;
mikevd1 0:db474e15b188 143 }
mikevd1 0:db474e15b188 144 }
mikevd1 0:db474e15b188 145
mikevd1 0:db474e15b188 146 }
mikevd1 0:db474e15b188 147
mikevd1 0:db474e15b188 148 }