![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
flipflop test
main.cpp@0:db474e15b188, 2018-06-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |