Gast
#3550335
Hi, ich habe mir eine RTC mit dem DS1307 gebaut, die auch weinwandfrei funktioniert. Jetzt möchte ich damit eine LED über die PWM hochdimmen. Und zwar soll einstellbar jede Sekunde, jede 2., jede 3... Sekunde der PWM-Wert um 1 erhöht werden. Also so das z.b. nach 256 Sekunden die volle Helligkeit erreicht ist. Allerdings fehlt mir hier ein kleine Denkanstoss, wie ich nun den Sekundentakt von der Uhr abfangen kann. Mein dazu bereits entwickelter Code funktioniert nicht seczaehler = 1 secteiler = 1 Secbefore = _sec Do If Secbefore < _sec Then Incr Seczaehler If Seczaehler = Secteiler Then Secbefore = _sec Seczaehler = 1 Incr Wertpwm Pwm1a = Wertpwm End If Loop Da secbefore natürlich nicht jede Sekunde erhöht wird, sondern immer dann wenn das Programm innerhalb einer Sekunde hier vorbei kommt. Und eine Abbruchbedingung bei PWM=255 fehlt hier auch noch. Meine Idee wäre, dass ein Interrupt jede Sekunde die Variabel erhöht, allerdings hab ich damit noch nicht gearbeitet und habe keine Ahnung wie ich den jede Sekunde auslösen kann. Oder gibt es da einen bestimmten Befehl der immer ausgeführt wird, wenn sich die _sec (Aktuelle Sekunde der RTC) geändert hat? Ich hoffe Ihr könnt mir einen kleinen Denkanstoss geben. Gruss Sebastian