-
-
@blaueled
kann ich, der steht auch schon irgendwo im forum(forum_dimmer***.bas), nur nicht gleich heute, muss noch arbeiten
aber so in groben zuegen ->
--------------------
config timer1
enable int0
enable compare1a
variabeln, etc...
---Hauptschleife---
do
Taster abfragen und auswerten
Wenn Taster kuerzer als x ms dann Lampe toggeln
Wenn Taster laenger als x ms dann Lampe dimmen
loop
---Interrupt---
timer1_code:
decr zuendzeitpunkt
wenn zuendzeitpunkt = lampen Helligkeit dann triac zuenden (set pinx.n)
compare1a = naechster zuendzeitpunkt bei
Return
---Nulldurchgang---
int0_code:
timer1 = 0
compare1a = erster zuendzeitpunkt
zuendzeitpunkt = 256
Return
end
--- 255 Zuendzeiten ---
data xxx,xxx,xxx
Grobe erklaerung :
Zu INT0:
Bei einem Nulldurchgang wird Int0 ausgeloest und setz den zuendzeitpunktszaehler (wow was fuer ein wort) auf Null bzw auf 256, der timer wird auf null gesetz und compare1a auf den ersten (im wert niedrigsten aber in der helligkeit hoechste) wert gesetzt. Bei 10 MHz quartz und timer prescale 8 ist das so um die 400 oder 500.
Diese erste wert entspricht etwa dem "kurz nach" dem Nulldurchgang der sinus kurve d.h. wenn du deinen Triac dann Zuendest hast du die volle welle.
Zu Timer1 interrupt (eigentlich das compare1a interrupt) :
wird nun der erste kleinste wert vom timer ereicht d.h. das compare1a interrupt ausgeloest, zaehlst du einfach einen zaehler von 255 um eins nach unten, vergleichst diesen wert mit dem deiner lampe wenn diese beiden gleich sind zuendest du. Bevor der return kommt noch schnell den naechsten comapre wert setzen,damit das spiel von vorne beginnen kann.
zur Hauptschleife :
Hier kanns du alles reinpacken was du willst nur , es darf nicht zu viel zeit "kosten" . Du brauchst in deiner hauptschleife nicht zu warten oder zu "pausieren" oder irgendwelche interrupte manuel auszuloesen, das geht alles von selbst.
Klingt alles sehr verwirrend geb ich zu doch wenn du dir mein progi anschaust und ein bischen auseinander nimst wirst du es verstehen wenn nicht werd ich dir helfen,ich hab auch einige tage und wochen damit verbracht.
Ich schreib dir nen richtigen code sobald ich zuhause bin
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen