
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Dietmar das war ein super Tip von dir. Das Beispiel (leicht geändert) lief sofort. Und die PWM ist nun rasend schnell (33KHz schneller geht auch noch,aber ok so). Kostet null CPUzeit (direkt in Hardware) und ist schön "ruckelfrei" ich danke dir sehr. Gruß Wolfgang > Hallo Wolfgang. > > Ein Beispiel für eine schnelle PWM findest Du im ZIP-Archiv mit dem Open-Control/BASIC-Compiler Version 1.0 (ocbas100.zip) auf der Infosite der OM. Im Beispielprogramm werden DTMF-Signale mittels PWM mit 25 kHz Taktfrequenz und 7 Bit Werteauflösung generiert. Die OM arbeitet dabei mit dem Standard-Bustakt von 3.2 MHz. Bei Bedarf läßt sich der Bustakt auf 8 MHz erhöhen. Dazu muß der Kontroller extern mit 32 MHz getaktet werden. Auch dazu findest Du Infos auf der OM-Infosite. > > > die Hardwareseitige PWM im Controller (wie in Kapitel 14.4.4 ab seite 123 im Controler Handbuch beschieben) nutzen > > Ein echtes PWM-Modul besitzen die QT4-, QY4-, QB8- und GT16-Kontroller leider nicht. Die PWM muß deshalb mittels Timer-Interface-Modul nachgebildet werden. Es gibt eine ungebufferte PWM, bei der Störungen auftreten können, wenn man den PWM-Wert unsynchronisiert ändert. Und es gibt eine gebufferte PWM, bei der beide Timerkanäle zusammengeschaltet werden, so daß ein einziges PWM-Signal an PORT[1] ausgegeben werden kann. Das Beispiel mit den DTMF-Signalen benutzt eine gebufferte PWM. Der QB8 besitzt zwei weitere Timerkanäle. > > > Und was geht dann nicht mehr wenn ich einen der beiden dafür nehme. > > Das kommt darauf an. Sobald Du den TIM-Clock-Source durch Beschreiben der Prescaler-Select-Bits und/oder das TIM-Counter-Modulo-Register änderst, wird der Timer-Overflow-Interrupt, in dem die interne TIMER-Variable und die Uhr hochgezählt wird, nicht mehr im 20-ms-Takt aufgerufen. TIMER, die Uhr und FREQ1 laufen dann nicht mehr wie vorgesehen. Aber bei wirklich schneller PWM wirst Du den Timer-Overflow-Interrupt wahrscheinlich ohnehin deaktivieren müssen. Die serielle Schnittstelle ist dagegen nicht Timer-abhängig. Eine sinnvolle Übersicht über alle Register des Kontrollers findest Du auch in der Definitionsdatei zum OM-Kontroller (z.B. OM.DEF). > > Viele Grüße > Dietmar |
| Antwort schreiben |