Forum: Mikrocontroller und Digitale Elektronik PWM Wert hochzählen


von Reinhard S. (schopfi)


Lesenswert?

Hallo !

Ich stehe gerade ein Wenig auf der Leitung ! Ich habe einen Mega8 
programmiert auf dem eine Uhr mittels Timer 1 läuft und die bei einer 
bestimmten Uhrzeit eine Led Leiste mit Timer2 PWM aufdimmt und abends 
wieder
abdimmt.
Geht ja alles Super. Da ich in der Timer1_isr eine Variable im 
Sekundentakt hochzähle und an die PWM übergebe dauert das aufdimmen der 
LED´s etwas mehr wie 4 Minuten. Ich möchte das aber etwa an die 16 
Minuten bringen also ca. alle 4 Sekunden einen Wert höher.
Nur weiß ich grad nicht wie ich das programmieren soll das nur alle 4 
Sekunden ein wert hochgezählt wird ??
Programmiert in Bascom !
So siehts ein Teil der Timer1_isr aus :

Incr Sek
If Sek = 60 then
 sek = 0
 Incr Min
endif
usw...

...geht das denn etwa so ....
IF sek = sek + 4 then
 incr pwmwert
endif
usw....

komm da grad irgendwie nicht weiter, bitte um ein paar denkanstösse..
danke sehr !
lg

von Samuel C. (dragonsam)


Lesenswert?

IF sek % 4 = 0 then
 incr pwmwert
endif

von Reinhard S. (schopfi)


Lesenswert?

aha !
das funktioniert so ? wieso sek % 4 = 0 ?
kannst du mir das mal erklären ? kenn ich so gar nicht.
ich möchte das der wert jede 4. sek hochgezählt wird, also nach 
4,8,12,16...usw

von Samuel C. (dragonsam)


Lesenswert?

"%" steht für Modulo, es kann sein, dass du statt dem "%" auch "MOD" 
schreiben musst.
Ein Modulo teilt eine Zahl und gibt als Ergebnis den Rest der Teilung 
aus. Jede vierte Zahl ist durch 4 teilbar, somit ist der Rest der 
Teilung 0.

von Reinhard S. (schopfi)


Lesenswert?

vielen dank für die erklärung ! man lernt nie aus :-)
werd das mal probieren, ja in bascom muß ich "mod" verwenden !
danke !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.