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
ich hab die rtc nicht extra gebaut um an den sekundentakt zu kommen, sondern um die leds auch je nach uhrzeit dann hoch oder runter dimmen zu lassen (ist für ne aquarienbeleuchtung) deshalb würde ich gerne auch hier den sekundentakt für das hoch oder runterdimmen abfragen um den code nicht mit wait-anweisungen vollzupflastern. gruß sebastian
Du kannst den DS1307 so konfigurieren, das er jede Sekunde einen Impuls ausgibt. Den legst du an einen Interrupt Eingang und hast einen genauen Impuls.
das hört sich gut an ;) werde mal sehen ob ich dmait klarkomme, wenn nicht melde ich mich nochmal. Gruß Sebastian
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.