Anonymous
Not applicable
Mar 10, 2017
08:42 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 10, 2017
08:42 AM
Hi,
I'm searching for an easy way to extract/put uint16 form/in CAN Messages/Mailboxes
Before (with other Platform) I do this:
UB12=(*(short *) &CAN_Receive_Data[1]);
UB24=(*(short *) &CAN_Receive_Data[3]);
(*(short *) &CAN_Send_Data[1])=UB12;
(*(short *) &CAN_Send_Data[3])=UB24;
Regards,
Michael
3 Replies
Mar 10, 2017
02:12 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 10, 2017
02:12 PM
Combining two 8-bit variables into 16 bit:
uint8_t low=42; uint8_t high=42; uint16_t word=low+high>>8;
Anonymous
Not applicable
Mar 10, 2017
02:37 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 10, 2017
02:37 PM
That's not the Problem. I want extract from CAN_Message_Mailbox:
UB12 = ((uint16) ((uint16) CAN0_RX_DATA_BYTE2(CAN0_RX_MAILBOX_0) << 8u)) | CAN0_RX_DATA_BYTE1(CAN0_RX_MAILBOX_0);
UB24 = ((uint16) ((uint16) CAN0_RX_DATA_BYTE4(CAN0_RX_MAILBOX_0) << 8u)) | CAN0_RX_DATA_BYTE3(CAN0_RX_MAILBOX_0);
worked, but is it the easiest way?
Mar 14, 2017
04:33 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 14, 2017
04:33 AM
In C: yes.