Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

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 Dennis, Lizard & Heribert, > > Es gab ein sporasisch, leider von mir nicht reproduzierbares Problem > beim Schreibzugriff auf das Display. > Es scheint seit dem ASM-Treiber aufgetreten zu sein. > Das Problem ist, daß die CC2 einfach zu schnell beim Senden ist, > bzw. das eDIP die Daten bei 100kHz Bustakt nicht schnell genug verarbeiten konnte > Im ASM-Treiber waren bereits I²C-Leseroutinen mit Clockstreching implementiert. > Jetzt sind seit V0.50b auch die Schreibroutinen des ASM-Treibers mit Clockstreching ausgerüstet. > Die Probleme scheinen damit behoben zu sein. > Der neue ASM-Treiber mit den Änderungen sind seit gut anderthalb Wochen bei einem Kunden > mit zahllosen eDIPs an einem Bus im Einsatz. Bisher gab es noch keine Probleme. > > Also ladet bitte die neueste Version von edip.c2 herunter, die ich gestern hochgeladen habe, > und ladet die neueste Version von edip240.hex in Segment3. > > Ach ja, noch ein Tip für den Betrieb des eDIPs in größeren Projekten: > Benutzt bitte die Interrupt-Leitung des eDIPs und schließt diese an einen > freien I/O-Port an. Bei mehreren eDIPs reicht eine gemeinsame Interruptleitung. > So spart man sich das ständige Pollen via edip.receiveframe() lastet die CC2 > und auch den I²C-Bus unnötig aus. > Daher kann man folgendes Konstrukt in die Routinen einbauen: > <code> > if not ports.get(IntPort) //Wenn die Int-Leitung auf Low ist > edip.receiveframe(edipAddr,Display1); > </code> > > Bei Multi-Display-Betrieb gibt es zwei Möglichkeiten, je nachdem, > ob alle Displays aus einem Thread oder aus mehreren angespochen werden. > Bei mehreren Threads reicht es, die Routine oben für jeden Thread zu benutzen. > Bei einem Thread für alle Displays ist folgendes ratsam: > <code> > const eDIPAddr[]=0,5,6; // Adressen von Drei eDIPs > edip.RxBuffer Display[3]; > ... > byte i; > i=0; > while not ports.get(IntPort) //Wenn die Int-Leitung auf Low ist > and i<3 // und i innerhalb des gültigen Bereichs ist > { > edip.receiveframe(eDIPAddr[i],Display[i]); > i=i+1 > } > </code> > > Man kann auch einen seperaten Thread nur für das Empfangen des Empfangspuffers > bzw. für die Interruptbehandlung am I²C-Bus verwenden. > Hier muß dann aber auf jeden Fall gecaptured werden: > <code> > const eDIPAddr[]=0,5,6; // Adressen von Drei eDIPs > edip.RxBuffer Display[3]; > ... > byte i, flag; > i=0; > while not ports.get(IntPort) //Wenn die Int-Leitung auf Low ist > and i<3 // und i innerhalb des gültigen Bereichs ist > { > capture flag; > edip.receiveframe(eDIPAddr[i],Display[i]); > release; > i=i+1 > } > </code> > In den einzelnen Display-Threads ist dann folgendes notwendig: > <code> capture flag; > a=edip.getRxData(Display1,t); > release; > </code> > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB