Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Dieter, > > Beim Thema CAN-Bus kann ich Dir leider nicht viel helfen. > Jedoch, welche Version von can.c2 nutzt Du ? > Es gab vor ca. einem Jahr beim Wechsel des C164CI zu einem > anderem Derivat ein Problem mit dem CAN-Bus, da sich einige Registereinstellungen > hinzukamen. Es soll dann zu ähnlichen Problemen gekommen sein. > Mit der neuesten Version von can.c2 sollte dies aber gelöst sein. > Wenn Du schon die neueste Version von can.c2 nutzt, kann ich Dir leider > keine weiteren Tips geben, da ich mich mit dem CAN-Bus nicht beschäftige. > > Jedoch kann man von dem beschriebenen Verhalten auch schließen, daß > es zu einer Überlastung durch zu viele Interrupts kommen könnte. > Warum es allerdings funktioniert, wenn das weitere CAN-Modul angesteckt ist, > erklärt dies nicht. > > Vielleicht kommt das Problem auch von woanders. > Wie sieht bei Dir die Beschaltung der Interruptsensiblen Ports aus ? > (P1H.0 bis .3) Haben diese, falls sie nicht genutzt werden, Pull-Widerstände ? > Bzw. mit was für einer Platine nutzt Du die CC2 ? > > Zu Deinem Programm: > Der Init() des CAN-Busses sollte nur einmal bei Systemstart ausgeführt werden. > Also nach dem Schema: > <code>thread main > { > // Initialisierungen > loop > { > //Programm > } > }</code> > > Auch das Warten auf ready() sollte besser so gemacht werden: > > <code>wait can.ready(x);</code> > Oder wenn schon in einer Schleife: > <code> > while not can.ready(x); > { > //... > yield; > }</code> > > > MfG André H. > > > > Hallo Ich habe Probleme mit dem CAN-Bus > > Die C-Controlunit wid in einem Can Netz betrieben > > C-Controlunit - PC CAN interface - Frenzen und Berg CAN-Canmodul > > Das System läft > > wird nur die C-Unit und das PC Interface betrieben (Abschlusswiederstand umgesteckt) > > passiert folgendes die Unit wird wird Träge stellt die Sendungen auf den Bus in > > will man Die Unit neu Programmieren kommt die Fehlermeldung Vorgang mus wiederholt werden > > Zieht man den Can Busstecker ab kann die Unit neu Programmirt werden > > und erst wenn das Frenzen und Berg Modul wieder im C-BUS ist läuft das System > > trennt man das Modul wieder vom C-Bus funktioniert das System weiter > > Erst nach ein par Starts blockiert die Unit wieder > > > > //CAN-Bustiming 500 kB/s > > can.init(4,0x07FF,0x0000); > > > > do > > { > > R=1+can.ready(1); > > } > > while R; > > can.send(1,200,data,8); > > > > // CAN Bus ID=100 DTR 2 Kanal 2 > > X=ports.getfreq(0); // V-Signal > > candata[0]=X; > > X=ports.getfreq(1); // RPM-Signal X/60*Z 700 HZ 7000 1*min > > candata[1]=X/10; // Messwert/10 0-70 0-7000 1/min > > do > > { > > R=1+can.ready(2); > > } > > while R; > > can.send(2,100,candata,2); > > > > // CAN Bus ID 400 DTR 1 Kanal 3 > > candata[0]=Viedeounit; > > candata[1]=255; > > do > > { > > R=1+can.ready(3); > > } > > while R; > > can.send(3,400, candata,2); > > STA=can.error(); > > > > > > Leigt in meinem Programm ein Fehler vor ? > >