mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN-Bus Status auslesen geht nicht!


Autor: Nador Rif (rifman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
MC:        LPC2468-Board
Kompiler:  GNUARM
ich versuche die ganze Zeit der CAN-Bus Zustand auszulesen(Passiv oder 
Aktive), es geht aber nicht.Ich mache nichts anders als Die CAN-Bus 
Zustand vom CANxSR Register auszulesen und die Receive Status Bit zu 
überprüfen, wenn ich aber der CAN-Bus starte, gibt mir das Programm 
immer aus, das es keine CAN Aktivitäten vorhanden sind,obwohl es CAN-Bus 
Verkehr gibt(ich kann die CAN-Frames auch sehen).
unsigned char CANState(void)
{
 unsigned char retval;
 unsigned int recvstate;
 
 recvstate = CAN1SR;
 if(recvstate & (1<<4))  
 {
   retval = TRUE;
 }
 else
 {
   retval = FALSE;
 }

 return(retval);
}

Gibt es irgendwas falsches im Programm? muss ich vielleicht die CAN 
Interrupts vorher ausschalten?

Danke

Autor: Nador Rif (rifman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, anscheinend hat keiner von euch eine Idee.

Andere Frage: Muss man immer den CAN-Interrupt ausschalten wenn man die 
CAN-Daten bearbeiten will?,z.B. von CAN Receive Buffer zum anderen 
Buffer kopieren, oder wie ist das?

Danke

Autor: Jonas Arndt (Firma: GreenWire-Elektronik) (padrejohn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich kann dir zwar nicht helfen in Sachen CAN, aber in der aktuellen 
Elektor war ein guter Artikel zum auslesen vom CAN-Bus!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kenne den 2468 nicht, aber den 2378. Die CAN Controller sollten 
eigentlich identisch sein.
Du musst die Interrupts nicht ausschalten, um die Register lesen zu 
können.
Typischer Fehler beim CAN Empfang ist ein fehlerhafter oder ganz 
vergessener Akzeptanzfilter. Du musst für jede ID die du empfangen 
möchtest einen Eintrag in die Liste machen. Das wird gerne vergessen.

Autor: Nador Rif (rifman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jonas Arndt wrote:
> Hi,
>
> ich kann dir zwar nicht helfen in Sachen CAN, aber in der aktuellen
> Elektor war ein guter Artikel zum auslesen vom CAN-Bus!

Danke für die Infos.

@Peter:
>Du musst die Interrupts nicht ausschalten, um die Register lesen zu
>können.
Ok, aber was ist mit den CAN-Daten, der Datenstrom wird jedesmal 
unterbrochen, wenn ich die Daten bearbeiten will,oder?

>Typischer Fehler beim CAN Empfang ist ein fehlerhafter oder ganz
>vergessener Akzeptanzfilter. Du musst für jede ID die du empfangen
>möchtest einen Eintrag in die Liste machen. Das wird gerne vergessen.
Das würde ich so nicht sagen, wenn ich den Akzeptanzfilter auf bypass 
mode einstelle dann muss ich das nicht tun.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich kann dir zwar nicht helfen in Sachen CAN, aber in der aktuellen
> Elektor war ein guter Artikel zum auslesen vom CAN-Bus!

http://martinsuniverse.de/projekte/caninterceptor/...

Die Software ist zwar noch nicht komplett fertig aber für den Anfang 
einsatzfähig.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist den CANISR bei
recvstate = CAN1SR; ???

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.