Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: PWM mit flexiblen Pulsen und Pausen Kategorie: Programmierung Basic (von Antworter - 28.05.2008 12:23)
 Als Antwort auf Re: PWM mit flexiblen Pulsen und Pausen von Georg - 28.05.2008 11:03
Man kann die auch in Basic (BasCom) programmieren.. LĂ€uft sehr schnell, kann man mit Assembler mixen, empfehlenswert!

> Hallo,
> der Code war nicht vollstÀndig, das ist richtig.
> Habe mittlerweile eine verschachtelte Schleife geschrieben mit der ich auch weiter in der Zeit komme.
> Je nachdem wie lang der Code ist (speziell hinter der Schleife), sind sicher vorhersehbare / berechenbaren Zeiten relativ.
> Ich wĂŒrde auch gerne in die Atmel AVR einsteigen - leider fehlt mir die Zeit und das tiefere VerstĂ€ndnis fĂŒr die C-Programmiersprache.
>
> Gruß
> Georg
>
>
>
> > 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

Bisherige Antworten:

Re: PWM mit flexiblen Pulsen und Pausen (von Georg - 29.05.2008 16:04)