Bytes aus Register auslesen

Gast #1600046
Lesenswert?
• ▲
▼
Hallo,

ich habe einen LPC 2119 und möchte ein CAN drauf zum laufen bekommen.
Es klappt auch alles soweit nur tu ich mir schwer die einzelnen Bytes 
der Botschaften auszulesen.

Auszug aus CANoe
1
message  CAN1.SPEED Speed  =
2
{
3
 byte (0) = 0x1,   
4
 byte (1) = 0x2,
5
 byte (2) = 0x3,   
6
 byte (3) = 0x4,
7
 byte (4) = 0x5, 
8
 byte (5) = 0x6,
9
 byte (6) = 0x7,
10
 byte (7) = 0x8
11
};

diese Nachricht schicke ich über den CAN. die Nachricht wird korrekt 
eingelesen und im Rgister C1RDA gespeichert.

Aufbau meiner CAN Nachricht:
1
typedef struct
2
{
3
  unsigned int Frame; // Bits 16..19: DLC - Data Length Counter
4
                      // Bit 30: Set if this is a RTR message
5
                      // Bit 31: Set if this is a 29-bit ID message
6
  unsigned int MsgID; // CAN Message ID (11-bit or 29-bit)
7
  unsigned int DatA;  // CAN Message Data Bytes 0-3
8
  unsigned int DatB;  // CAN Message Data Bytes 4-7
9
} CANALL_MSGRX;

Wenn eine Nachricht empfangen wurde wird dieser Interrupt gestartet:
1
// Receive Queue: one queue for each CAN port
2
CANALL_MSGRX mRxCAN[MAX_CANPORTS][MAX_QUEUE];
3

4
void CANAll_CANISR_Rx1 (void)  __irq
5
{
6
unsigned int *pDest;
7
unsigned int *data;
8

9
  // initialize destination pointer
10
  pDest = (unsigned int *) &(mRxCAN[0][mRxIN[0]]);
11
  *pDest = C1RFS;  // Frame
12

13
  pDest++;
14
  *pDest = C1RID; // ID
15

16
  pDest++;
17
  *pDest = C1RDA; // Data A
18

19
  pDest++;
20
  *pDest = C1RDB; // Data B
21

22
  // Adjust IN pointer
23
  mRxIN[0]++;
24
  if (mRxIN[0] >= MAX_QUEUE)
25
  {
26
    mRxIN[0] = 0;
27
  }
28

29
  C1CMR = 0x04; // release receive buffer
30
  VICVectAddr = 0xFFFFFFFFL; // acknowledge Interrupt
31

32
}



Laut LPC 2119 Datenblatt stehen im C1RDA register Byte (0) - Byte (3)

wie bekomm ich des hin, das Byte (1) auszulesen um es auf ein Display 
auszugeben ?!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.