INFO - FAQ - CC2-Forum - CCPro-Forum |
Hallo, das Problem ist eher die Genauigkeit, da Du nicht genau vorhersagen kannst, wie lange die Befehlsabarbeitung dauern wird. Wenn Du in Dein Codebeispiel unten noch die Marke "loop" an den Anfang tust, sollte da schonmal eine PWM 'rauskommen. Im Prinzip brauchst Du nur diesen Abschnitt loop > tog PW 'an > FOR x = 1 TO PWA > NEXT > tog PW 'aus > FOR x = 1 TO PWC goto loop Aber mit PWC als Byte kannst Du sicher nicht weit genug zĂ€hlen, um eine Sekunde zu erreichen. Nimm mal ein word oder long und zĂ€hle bis 15000 (M-Unit) fĂŒr PWC, das könnte ungefĂ€hr hinkommen. Auf dem ATMEL AVR ist der Code genauso (in BasCom), nut toggle statt tog. Genauer wird es da, weil er einfach schneller lĂ€uft, und man die Befehlsdauerzeiten vorhersagen kann. > Hallo zusammen, > eine Frage an die Profis: > Ich suche eine Möglichkeit, eine Art PWM, mit flexiblen Puls und Pausenzeit zu programmieren. Wie unten dargestellt habe ich mich schonmal versucht und komm mit dem Zeitansatz fĂŒr den Schleifendurchlauf auch soweit klar. Da meine PWM einen Puls von 2 - 7ms (verĂ€nderbar) bringen muĂ die Pausezeit aber zusĂ€tzlich variieren soll komme ich da so nicht weiter. Die benötigte Frequenz der Puls-Pause-Welle, ich nenne sie jetzt mal so, muĂ zwischen 1 Hz und 50 Hz einstellbar (im Programm verĂ€nderbar) sein. > Beispiel 1: 1Hz - Pulsbreite 4ms und Pause den Rest der Sekunde > Beispiel 2: 33Hz - Pulsbreite 7ms und Pause von ca. 23ms (7 + 23 =30ms = 33Hz) > > Hat einer eine Idee wie ich das realisieren könnte oder ist das der Hochsprache auf den Atmel Mc vorbehalten. > > Danke im Voraus > GruĂ > Georg > > Codebeispiel > define PW port[1] > define PWA byte ' PWA - PWC werden aus eine Tabelle gelesen - hier nicht weiter dargestellt > define PWB byte > define PWC byte > > #FktTest > tog PW 'an > FOR x = 1 TO PWA > NEXT > tog PW 'aus > FOR x = 1 TO PWC > NEXT > FOR x = 1 TO PWB > NEXT > FOR x = 1 TO PWB > NEXT > > goto loop |
Antwort schreiben |