Hallo,
ich bin im moment dabei CANOpenSafety zu implementieren.
Jetzt bin ich über die Passage
A received SRDO shall be compared bit by bit (modulo 2) in the
application (data and identifier)
gestolpert.
Wie sieht so ein Bit für Bit Vergleich mit Modulo 2 aus?
Wieso ist so ein Vergleich besser?
Meine eizige Idee war bis jetzt:
1 | int8_t bit_by_bit_compare(uint8_t data1, uint8_t data2)
|
2 | {
|
3 | for(uint8_t i = 0; i < 8; i++){
|
4 | if((data1 % 2) != (data2 % 2)){
|
5 | return -1;
|
6 | }
|
7 | data1 = data1 >> 1;
|
8 | data2 = data2 >> 1;
|
9 | }
|
10 | return 0;
|
11 | }
|