>CAN Botschaft senden macht Probleme<

Gast #139368
Hallo!

Da ich am verzweifeln bin, wende ich mich zum letzten mal an Euch!
Zur Zeit bin ich gerade dabei den SJA1000 an einem LPT Port unter
Win2000 mit Borland Builder C++ zu betreiben.
Den LPT Port kann ich ohne Probleme ansprechen. So wie es aussieht
funktioniert auch die Initialisierung des CAN Controllers.
Nur beim Senden einer CAN Botschaft, bleibt das Programm (siehe
Funktion unten)immer in der do...while Schleife hängen. Einen CAN
Teilnehmer habe ich auch angehängt mit der gleichen Baudrate von
100kBit/s.
Wie gesagt den SJA1000 habe ich zusammen mit einem ATMEL Controller
am laufen. Klappt wunderbar. Ich weiss einfach nicht mehr weiter.
Gibt es hier in diesem Forum jemand der schon einmal einen CAN Baustein
an einem LPT Port unter Win2000 bzw. WinXP betrieben hat?

/*----CAN Botschaft
senden------------------------------------------------*/
void TForm1::canmessage_write(struct message *ptransmit)
{
   unsigned int id_1,id_2,id_3;
   unsigned int id_1_hilf,id_2_hilf,id_3_hilf;
   unsigned int trdscr_wert;
   unsigned int i;

   id_3=(ptransmit->id)&0x0f;
   id_2=((ptransmit->id)/16)&0x0f;
   id_1=((ptransmit->id)/256)&0x0f;

   id_1_hilf=id_1*32;
   id_2_hilf=id_2*2;
   id_3_hilf=id_3/8;

   trdscr_wert=(id_1_hilf)|(id_2_hilf)|(id_3_hilf);
   canreg_write(10,trdscr_wert);


   id_3=(ptransmit->dlc)&0x0f;
   id_2=(ptransmit->rtr)*16;
   id_1=((ptransmit->id)&0x0f)*32;

   trdscr_wert =(id_3)|(id_2)|(id_1);
   canreg_write(11,trdscr_wert);

   for (i=0;i<=7;i++)
    {
     canreg_write (12+i,ptransmit->byte[i]);
    }
   canreg_write (1,0x01); //Sendung auslösen

   do
    {
    }
   while (((canreg_read(2))&0x08)==0); //warten bis Sendung fertig

}
Gast
Hallo Joe,

lies mal in der do-while Schleife das Can-Register 2 komplett aus und
zeige alle 8 Bits an und poste diese hier.

Hast du mal mit dem Oszi auf den Can-Leitungen nachgeprüft, ob sich da
was tut wenn du eine Botschaft abschickst?

Volker

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.