![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
flipflop test
main.cpp@1:b82afb355b62, 2018-06-06 (annotated)
- 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?
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 | 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 | } |