CAN Library von ATMEL - CANary

OP #1386779
Hi,

ich versuche mich gerade ein bißchen in die Can Lib von Atmel ( 
http://www.atmel.com/dyn/resources/prod_documents/at90CANLIB_3_2.zip 
)einzuarbeiten bzw. diese zu nutzen. Das "simple" Beispiel in der Doc 
unter \Libraries\lib_mcu\can funktioniert einwadnfrei und feuert die 
Nachrichten nur so raus, aber sobald ich das "full" Beispiel in einer 
Endlosschleife probiere, schicke ich 15 mal Daten raus und bekomme als 
Status 15mal "not completed" obwohl der PC die Daten erhalten hat und 
dann stopt die Übertragung.
Daher meine Frage. Gibts ne vernünftige Doc für diese Library, damit ich 
mich da etwas besser einlesen kann und nicht einfach alles mit Try&Error 
rausfinden muss? :)

Hier mal ein Auszug aus meinem Code:
1
  tx_msg0.cmd = CMD_TX;
2
  uart0_puts("betrete Endlosschleife");
3
  while(1)
4
  {
5
      tx_msg0.pt_data[0] = 0x00;
6
      tx_msg0.pt_data[1] = 0x0F;
7
      tx_msg0.pt_data[2] = 0xF0;
8
      tx_msg0.pt_data[3] = 0xFF;
9

10
      //Botschaft versenden    
11
      if(can_cmd(&tx_msg0) == CAN_CMD_REFUSED)
12
      {
13
      
14
      }
15
      else
16
      {
17
        c_status = can_get_status(&tx_msg0);
18
        switch (c_status)
19
          {
20
            case CAN_STATUS_COMPLETED:
21
              uart0_puts("can completed");
22
              tx_msg0.cmd = CMD_TX;
23
            break;
24

25
            case CAN_STATUS_NOT_COMPLETED:
26
              uart0_puts("can not completed");
27
            break;
28

29
            case CAN_STATUS_ERROR:
30
              uart0_puts("can error");
31
            break;
32

33
            default:
34
              uart0_puts("can unknown situation");
35
            break;
36

37
            }
38
      }
39
  }


EDIT:
Die 15 Nachrichten scheinen von den Möglichen Mob zu kommen. Der 
AT90CAN128 hat ja 15 MObs. Die macht das Programm voll und dann ist 
Schluss...
Gast #1398657
Hallo Josef,

hier steht alles, was man wissen muss: 
http://www.atmel.com/dyn/resources/prod_documents/doc7679.pdf
Kapitel 19 (Seite 234ff)
Die ATMEL-Bibliothek ist lediglich als Beispiel gedacht.

Ohne genaue Kenntnis über dein CAN-Netzwerk, sowie deiner 
CAN-Controller-Konfiguration ist jede Hilfe nur eine wage Vermutung. Ich 
kann dir aber bestätigen, dass die ATMEL-Bibliothek klaglos läuft.

Schaue dir doch mal den Zustand der CAN-Register an (im Debug-Mode unter 
I/O-View => CAN). Möglicherweise befindet sich der Controller im 
Bus-Off.

mfg - subitus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.