www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN-BUS Fehler


Autor: SVEN (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VIC Initialisieren ?
wie wird der Interrupt Controller initialisiert damit ich CAN Nachricht 
empfangen kann.wo soll ich was einstellen??
ich kriege einen fehler beim empfangen, CRC delimiter?
danke von Voraus für eure Hilfe

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wär nicht schlecht wenn du dich mal hinsetzt und dir erst mal überlegst 
was dein Problem ist und wie du es am besten formulierst.

Ich versteh kein Wort.

Autor: SVEN (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry,
ich was vergessen,also ich arbeite mit der LPC2378, ich möchte den 
Interrupt Controller initialisieren damit ich eine CAN Nachricht 
bekommen kann.?
ich denke es ist klar jetzt?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
etwa so :

void init_can(UINT32 BTR)
  {
  // Power Control
  PCONP = PCONP | 0x00006000; // aktiviert CAN1 und CAN2 (Bit PCAN1 = 
PCAN2 = 1)

  // Der CAN Controller läuft mit halbem Prozessortakt = 36 MHz(72MHz/2)
  // Initialisation of CAN interfaces

  CANFilter = 0;                      // Reset and disable all message 
filters

  CAN_AFMR = 0x00000001;              // Acceptance Filter Mode Register 
= off !

  CAN1MOD = 1;                        // Mode Register: 
Reset Mode
  CAN1IER = 0;                        // Interrupt Enable Register: 
Disable All Interrupts
  CAN1GSR = 0;                        // Status Register: 
Clear Status register
  CAN1BTR = BTR;                      // BTR Register:              Set 
bit timing

  CAN1EWL = 0x0000007F;               // Error Warning Level auf 0x7F
                                      // läuft auf 0x80 wenn Knoten 
alleine am Bus

  VICVectAddr23 = (unsigned long)CAN_CANISR;   // Set interrupt vector
  VICVectCntl23 = 6;                  // Priorität 6
  VICIntEnable = 0x00800000;          // Enable CAN Interrupt

  CAN1IER = 1;                        // Interrupt Register: 
Enable Receive Interrupt
  CAN1MOD = 0;                        // Mode register: 
Operating Mode
}

Autor: SVEN (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
ich habe die gleiche Initialisation gemacht
DWORD CAN_Init( DWORD can_btr )
{

  PCONP |= (1 << 13) | (1 << 14);  // Enable clock to the peripheral

  PINSEL0  &= ~0x00000F0F;
  PINSEL0 |= 0x0000A05;  // port0.0~1, function 0x01, port0.4~5, 
function 0x10

  CAN1MOD = CAN2MOD = 1;  // Reset CAN
  CAN1IER = CAN2IER = 0;  // Disable Receive Interrupt
  CAN1GSR = CAN2GSR = 0;  // Reset error counter when CANxMOD is in 
reset

  CAN1BTR = CAN2BTR = can_btr;
     // Install CAN interrupt
  VICVectAddr0  =(unsigned long)CAN_RX2_ISR;// Adresse der 
Interrupt-Service-Routine wird in die Interrupt-Vector-Tabelle 
eingetragen
  VICVectCntl0   = 0x00000034;       // die 5 ersten bits stellt die 
Interrupt Slot Nummer fest = 20  und 6-Bit enablt diese Slot
  VICIntEnable  = 0x00800000;      // Enable C2Rx Interrupt  (Bit 23)
  CAN1IER = CAN2IER = 0x01;    // Enable receive interrupts
  CAN1MOD = CAN2MOD = 0x0;  // CAN in normal operation mode
  return( TRUE );
}

es kommt keine Interrupt,ich weiss nicht woran es liegt???
MFG SVEN

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.