flipflop test

Dependencies:   mbed

Committer:
mikevd1
Date:
Wed Jun 06 09:01:55 2018 +0000
Revision:
0:db474e15b188
Child:
1:b82afb355b62
working flipflop function code 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 0:db474e15b188 8 #define slaveAdress 0xFF
mikevd1 0:db474e15b188 9 #define functioncode 0x03
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 0:db474e15b188 38 if ( data == 0x07 && buffer == 0)
mikevd1 0:db474e15b188 39 {
mikevd1 0:db474e15b188 40 buffer = 1;
mikevd1 0:db474e15b188 41 }
mikevd1 0:db474e15b188 42 else if ( data == 0x02 && buffer == 1)
mikevd1 0:db474e15b188 43 {
mikevd1 0:db474e15b188 44 buffer = 2;
mikevd1 0:db474e15b188 45 }
mikevd1 0:db474e15b188 46 else if ( buffer == 2 || buffer == 3 )
mikevd1 0:db474e15b188 47 {
mikevd1 0:db474e15b188 48 if ( buffer == 2 )
mikevd1 0:db474e15b188 49 {
mikevd1 0:db474e15b188 50 value = data ;
mikevd1 0:db474e15b188 51 value = value << 8 ;
mikevd1 0:db474e15b188 52 buffer = 3 ;
mikevd1 0:db474e15b188 53 }
mikevd1 0:db474e15b188 54 else
mikevd1 0:db474e15b188 55 {
mikevd1 0:db474e15b188 56 value = value + data ;
mikevd1 0:db474e15b188 57 //if ( value > 0 && value < 0xFFFF )
mikevd1 0:db474e15b188 58 //{
mikevd1 0:db474e15b188 59 buffer = 5 ;
mikevd1 0:db474e15b188 60 //}
mikevd1 0:db474e15b188 61 }
mikevd1 0:db474e15b188 62 }
mikevd1 0:db474e15b188 63 else if ( buffer == 5 )
mikevd1 0:db474e15b188 64 {
mikevd1 0:db474e15b188 65 // crc check
mikevd1 0:db474e15b188 66 buffer = 6 ;
mikevd1 0:db474e15b188 67 }
mikevd1 0:db474e15b188 68 else if ( buffer == 6 )
mikevd1 0:db474e15b188 69 {
mikevd1 0:db474e15b188 70 // crc check
mikevd1 0:db474e15b188 71 buffer = 7 ;
mikevd1 0:db474e15b188 72 }
mikevd1 0:db474e15b188 73 else
mikevd1 0:db474e15b188 74 {
mikevd1 0:db474e15b188 75 buffer = 0 ;
mikevd1 0:db474e15b188 76 }
mikevd1 0:db474e15b188 77
mikevd1 0:db474e15b188 78 }
mikevd1 0:db474e15b188 79 if ( buffer == 7 )
mikevd1 0:db474e15b188 80 {
mikevd1 0:db474e15b188 81 if ( count < 5 )
mikevd1 0:db474e15b188 82 {
mikevd1 0:db474e15b188 83 led1 = !led1;
mikevd1 0:db474e15b188 84 wait_ms(3);
mikevd1 0:db474e15b188 85 activateSN65 = 1 ;
mikevd1 0:db474e15b188 86 //adress
mikevd1 0:db474e15b188 87 bus.putc(0x07);
mikevd1 0:db474e15b188 88 wait_us(900);
mikevd1 0:db474e15b188 89 //send function code
mikevd1 0:db474e15b188 90 bus.putc(0x02);
mikevd1 0:db474e15b188 91 wait_us(900);
mikevd1 0:db474e15b188 92 // Byte count
mikevd1 0:db474e15b188 93 bus.putc(0x01);
mikevd1 0:db474e15b188 94 wait_us(900);
mikevd1 0:db474e15b188 95 //data
mikevd1 0:db474e15b188 96 bus.putc(0x01);
mikevd1 0:db474e15b188 97 wait_us(900);
mikevd1 0:db474e15b188 98 // crc check
mikevd1 0:db474e15b188 99 bus.putc(0x60);
mikevd1 0:db474e15b188 100 wait_us(900);
mikevd1 0:db474e15b188 101 bus.putc(0xC0);
mikevd1 0:db474e15b188 102 buffer = 0 ;
mikevd1 0:db474e15b188 103 wait_ms(2) ;
mikevd1 0:db474e15b188 104 activateSN65 = 0 ;
mikevd1 0:db474e15b188 105 count++;
mikevd1 0:db474e15b188 106 }
mikevd1 0:db474e15b188 107 else
mikevd1 0:db474e15b188 108 {
mikevd1 0:db474e15b188 109 led1 = !led1;
mikevd1 0:db474e15b188 110 wait_ms(3);
mikevd1 0:db474e15b188 111 activateSN65 = 1 ;
mikevd1 0:db474e15b188 112 //adress
mikevd1 0:db474e15b188 113 bus.putc(0x07);
mikevd1 0:db474e15b188 114 wait_us(900);
mikevd1 0:db474e15b188 115 //send function code
mikevd1 0:db474e15b188 116 bus.putc(0x02);
mikevd1 0:db474e15b188 117 wait_us(900);
mikevd1 0:db474e15b188 118 // Byte count
mikevd1 0:db474e15b188 119 bus.putc(0x02);
mikevd1 0:db474e15b188 120 wait_us(900);
mikevd1 0:db474e15b188 121 //data
mikevd1 0:db474e15b188 122 bus.putc(0x02);
mikevd1 0:db474e15b188 123 wait_us(900);
mikevd1 0:db474e15b188 124 bus.putc(0x02);
mikevd1 0:db474e15b188 125 wait_us(900);
mikevd1 0:db474e15b188 126 // crc check
mikevd1 0:db474e15b188 127 bus.putc(0xB1);
mikevd1 0:db474e15b188 128 wait_us(900);
mikevd1 0:db474e15b188 129 bus.putc(0x19);
mikevd1 0:db474e15b188 130 buffer = 0 ;
mikevd1 0:db474e15b188 131 wait_ms(2) ;
mikevd1 0:db474e15b188 132 activateSN65 = 0 ;
mikevd1 0:db474e15b188 133 count++;
mikevd1 0:db474e15b188 134 }
mikevd1 0:db474e15b188 135 }
mikevd1 0:db474e15b188 136
mikevd1 0:db474e15b188 137 }
mikevd1 0:db474e15b188 138
mikevd1 0:db474e15b188 139 }