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 Andrè, > > ist ja interessant, was man so alles an den Ports setzten kann, wenn man weiß wie. > > Wie bekomme ich denn z.B. den Port 8.0 wieder auf PWM gesetzt? > Wenn ich jetzt den Port 8.1 setzen will was benutze ich dann als Konstante? > > Kannst Du diese netten funktionen mal in deine SFR Datei mit einbauen? > > Danke Michael > > > Hallo HGS, > > > > > laut Handbuch dachte ich, daß es möglich sein sollte, die PLM-Ports als normale Digitalausgänge > > > zu verwenden. Auf den Fehler mit dem HIGH bei Ausgabe>Periodenlänge bin ich schon hier im Forum > > > gestoßen, so geht's also nicht. > > > > Über PLM kan man leider nicht direkt 100% einstellen. > > Wenn Du aber die maximale Periodenlänge und die kleinste Zeitbasis einstellst, > > kannst Du so die PLM-Ports weitgehens als normale dig. Ausgänge benutzen. > > D.h. folgendes: > > <code>plm.settimebase(PLMChannel, plm.BASE_400); > > plm.setperiod(PLMChannel, -1);//=65535</code> > > > > Um z.B. Relais anzusteuern, ist diese Lösung kein Problem. > > > > > Dann habe ich den Hinweis mit sfr.set_P8 gefunden. Das kriege ich > > > aber auch nicht hin. Mein Quelltext sieht so aus: > > > > > > <code> > > > PLMChannel=0; > > > plm.settimebase(PLMChannel, plm.BASE_400); > > > plm.setmode(PLMChannel, 0); > > > plm.setperiod(PLMChannel, 100); > > > loop > > > { > > > sfr.set_P8(sfr.get_P8() or 0b00000001); // PLM0 auf konstant high setzen > > > WaitForKey(VK_Enter); > > > sfr.set_P8(sfr.get_P8() and 0b11111110); // PLM0 auf konstant low setzen > > > WaitForKey(VK_Enter); > > > } > > > </code> > > > > > > Hier sehe ich aber auf dem Oszi nur einen kurzen Puls, dann ist das Signal wieder dauerhaft auf LOW. > > > Interessanterweise ist die Länge des zu sehenden Pulses nicht immer gleich. > > > Mache ich da noch was falsch mit setmode oder setperiod, oder geht es gar nicht so? > > > > Das geht so natürlich nicht. > > Du setzt zwar den Port per Hand auf High, aber Dir funkt die PLM-Zuweisung > > von CAPCOM2 dazwischen. > > Du mußt daher die erst die Zuweisung für den betreffenden Port aufheben. > > Danach kannst Du diesen als I/O-Port benutzen. > > Dazu muß man wissen, daß P8.0 die Bezeichnung CC16IO hat. (Entsprechend der Sonderfunktion) > > Über das Capture-Compar-Mode-Register CCM4 (0xFF22) kann die (Sonder-)Funktion > > der Ports P8.0-.3 bestimmt werden. (Siehe Manual zum C164CI) > > > > Mit folgender Funktion kannst Du aus P8.0 einen normalen I/O-Port machen: > > <code> > > inline function P8_0_IO() > > { > > inline vmcodes.VM_LOAD_IMMEDIATE_INT; > > inline 0xFFF0; > > inline vmcodes.VM_LOAD_ABSOLUTE_INT; > > inline 0xFF22; > > inline vmcodes.VM_AND; > > inline vmcodes.VM_STORE_ABSOLUTE_INT; > > inline 0xFF22; > > } > > </code> > > P8.0 kann jetzt als normaler I/O-Port benutzt werden. > > Allerdings sollten die Portansteuerungsroutinen so kurz, wie möglich sein: > > <code> > > inline function setP8_0() // Port setzen > > { > > inline vmcodes.VM_LOAD_IMMEDIATE_BYTE+0x0100; > > inline vmcodes.VM_LOAD_ABSOLUTE_BYTE; > > inline 0xFFD4; > > inline vmcodes.VM_OR; > > inline vmcodes.VM_STORE_ABSOLUTE_BYTE; > > inline 0xFFD4; > > } > > > > inline function clearP8_0() > > { > > inline vmcodes.VM_LOAD_IMMEDIATE_BYTE+0xFE00; > > inline vmcodes.VM_LOAD_ABSOLUTE_BYTE; > > inline 0xFFD4; > > inline vmcodes.VM_AND; > > inline vmcodes.VM_STORE_ABSOLUTE_BYTE; > > inline 0xFFD4; > > } > > > > inline function deactP8_0() //P8.0 als Eingang > > { > > inline vmcodes.VM_LOAD_IMMEDIATE_BYTE+0xFE00; > > inline vmcodes.VM_LOAD_ABSOLUTE_BYTE; > > inline 0xFFD6; > > inline vmcodes.VM_AND; > > inline vmcodes.VM_STORE_ABSOLUTE_BYTE; > > inline 0xFFD6; > > } > > > > inline function actP8_0() //P8.0 als Ausgang > > { > > inline vmcodes.VM_LOAD_IMMEDIATE_BYTE+0x0100; > > inline vmcodes.VM_LOAD_ABSOLUTE_BYTE; > > inline 0xFFD6; > > inline vmcodes.VM_OR; > > inline vmcodes.VM_STORE_ABSOLUTE_BYTE; > > inline 0xFFD6; > > } > > > > inline function OD_P8_0() //P8.0 als Open-Drain > > { > > inline vmcodes.VM_LOAD_IMMEDIATE_BYTE+0x0100; > > inline vmcodes.VM_LOAD_ABSOLUTE_BYTE; > > inline 0xF1D6; > > inline vmcodes.VM_OR; > > inline vmcodes.VM_STORE_ABSOLUTE_BYTE; > > inline 0xF1D6; > > } > > > > inline function PP_P8_0() //P8.0 als Push-Pull > > { > > inline vmcodes.VM_LOAD_IMMEDIATE_BYTE+0xFE00; > > inline vmcodes.VM_LOAD_ABSOLUTE_BYTE; > > inline 0xF1D6; > > inline vmcodes.VM_AND; > > inline vmcodes.VM_STORE_ABSOLUTE_BYTE; > > inline 0xF1D6; > > } > > </code> > > > > Das sind jetzt die wichtigsten Funktionen. > > Entsprechend kann man auch die anderen Ports von P8 umkonfigurieren. > > Beim Ansprechen über mehrere Threads müssen die Funktionen gecaptured werden ! > > > > MfG André H. > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB