Почему-то вот такой код не работает:
Код
//....
typedef unsigned char byte;
typedef unsigned long int dword;
dword SID = 0L;
typedef struct
{
byte extended_identifier;
dword identifier; //32 bit
// data length:
byte dlc;
byte dta[8];
// Acceptence Filter that enabled the reception
byte filhit;
byte rtr;
} CanMessage;
...
//теперь необходимо сдвинуть идентификатор на 5 бит влево...
SID = (dword)(((dword)(msg.identifier)) << 5);
//Вот тут и висим, непонятно почему...
//так как следующий оператор ничего в порт не выводит:
printf("Packet observed: SID=0x%04lX; data: ", SID);
for (i=0; i<=7; i++) printf("[0x%02X] ", msg.dta[i]);
printf("\n");
LED_WORK = 0;
//...
typedef unsigned char byte;
typedef unsigned long int dword;
dword SID = 0L;
typedef struct
{
byte extended_identifier;
dword identifier; //32 bit
// data length:
byte dlc;
byte dta[8];
// Acceptence Filter that enabled the reception
byte filhit;
byte rtr;
} CanMessage;
...
//теперь необходимо сдвинуть идентификатор на 5 бит влево...
SID = (dword)(((dword)(msg.identifier)) << 5);
//Вот тут и висим, непонятно почему...
//так как следующий оператор ничего в порт не выводит:
printf("Packet observed: SID=0x%04lX; data: ", SID);
for (i=0; i<=7; i++) printf("[0x%02X] ", msg.dta[i]);
printf("\n");
LED_WORK = 0;
//...
Вот почему висим там? Чему там висеть-то??