Zdenka Šibíková
/
vytah
vytah
Fork of CRC by
Diff: main.cpp
- Revision:
- 1:3a1827c56cd2
- Parent:
- 0:18d4d4297051
- Child:
- 2:cd46eb6deb30
diff -r 18d4d4297051 -r 3a1827c56cd2 main.cpp --- a/main.cpp Mon Nov 27 15:44:23 2017 +0000 +++ b/main.cpp Mon Dec 04 15:12:52 2017 +0000 @@ -1,8 +1,57 @@ #include "mbed.h" -DigitalOut myled(LED_GREEN); + + +#define INF_DISPLAY 0x30 +#define TERMINAL 0x0D + +#define CAB_BUT_P 0xb0 +#define CAB_BUT_1 0xb1 +#define CAB_BUT_2 0xb2 +#define CAB_BUT_3 0xb3 +#define CAB_BUT_4 0xb4 + +#define CAB_DIODE_P 0x20 +#define CAB_DIODE_1 0x21 +#define CAB_DIODE_2 0x22 +#define CAB_DIODE_3 0x23 +#define CAB_DIODE_4 0x24 + +#define ELEVATOR 0xf0 + +#define FLOOR_BUT_4 0xc4 +#define FLOOR_BUT_3 0xc3 +#define FLOOR_BUT_2 0xc2 +#define FLOOR_BUT_1 0xc1 +#define FLOOR_BUT_P 0xc0 + +#define FLOOR_DIODE_4 0x14 +#define FLOOR_DIODE_3 0x13 +#define FLOOR_DIODE_2 0x12 +#define FLOOR_DIODE_1 0x11 +#define FLOOR_DIODE_P 0x10 + +#define FLOOR_LIMIT_SWITCH_4 0xe4 +#define FLOOR_LIMIT_SWITCH_3 0xe3 +#define FLOOR_LIMIT_SWITCH_2 0xe2 +#define FLOOR_LIMIT_SWITCH_1 0xe1 +#define FLOOR_LIMIT_SWITCH_P 0xe0 + +#define MOTOR 0xf1 + + + + + + + + + + + + Serial pc(USBTX, USBRX,57600); -char naodoslanie[9]; +char naodoslanie[6]; char crc=0x00; char ccc[256]={0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, @@ -21,40 +70,38 @@ 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53}; -char sprava[5]; int main() { - // int i = 0; - sprava[0]=0xD0;//adresa prijimatela - sprava[1]=0xAA;//adr. odosielatela - sprava[2]=0x41;//data na odoslanie - sprava[3]=0x42;//data na odoslanie - sprava[4]=0x43;//data na odoslanie - - naodoslanie[0]=0xA0; - naodoslanie[1]=sprava[0]; - naodoslanie[2]=sprava[1]; - naodoslanie[3]=0x3; - naodoslanie[4]=sprava[2]; - naodoslanie[5]=sprava[3]; - naodoslanie[6]=sprava[4]; + +int dlzka=sizeof(naodoslanie)/sizeof(naodoslanie[0]); + + naodoslanie[0]=0xA0;//zaciatocny bajt + naodoslanie[1]=CAB_DIODE_P;//adresa prijimatela;CRC + naodoslanie[2]=0xAA;//adresa mojej dosky;CRC + naodoslanie[3]=dlzka-5;//pocet bajtov na odoslanie - int i; -for (i=0;i<sizeof(sprava);i++){ - crc=ccc[crc^sprava[i]]; + //data + naodoslanie[4]=0x01;//CRC + // naodoslanie[5]='-';//CRC + // naodoslanie[6]='5';//CRC + + ///////////////////////// + + crc=ccc[crc^naodoslanie[1]]; + crc=ccc[crc^naodoslanie[2]]; + +for (int i=4;i<dlzka-1;i++){ + crc=ccc[crc^naodoslanie[i]]; } -naodoslanie[7]=crc; +naodoslanie[dlzka-1]=crc; -for(int p=0;p<sizeof(naodoslanie);p++){ +for(int p=0;p<dlzka;p++){ pc.putc(naodoslanie[p]); - // pc.printf("%p\n",naodoslanie); } - + + + while (true) { - /* wait(0.5f); // wait a small period of time - pc.printf("%d \n", i); // print the value of variable i - i++; // increment the variable - myled = !myled; // toggle a led - */ } + } }