Hi Leute Also, ich bräcuhte bitte (schritt für Schritt)-Hilfe beim Berechnen des Timer-Startwertes damit ich einen "1-Sekunden-Takt" hinbekomm. Folgendes hat mich nicht wirklich weitergebracht: http://www.rn-wissen.de/index.php/Bascom_und_Timer http://www.rn-wissen.de/index.php/Timer/Counter_%28Avr%29 http://www.roboternetz.de/phpBB2/viewtopic.php?t=3165 (Beitrag von E-Fan!) könntet ihr mir bitte helfen? Das hier hab ich jetzt: $regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 14745600 $baud = 9600 Baud 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portc.6 , E = Portc.2 , Rs = Portc.0 Config Timer1 = Timer , Prescale = 256 Enable Timer1 On Timer1 Timer1_isr Timer1 = 51135 Dim A As Integer Do Loop Timer1_isr: Timer1 = 51135 A = A + 1 Cls Lcd A Return End Liebe Grüsse
Ist doch eigentlich schon fast richtig... Allerdings bräuchtest du für Timer1 = 51135 einen Prescaler von 1024 - Bei einem Presc. von 256 wäre Timer1 = 7935
Ach ja, wenn ich ne LED Toggle gehts, nur nicht aufm LCd anzeigen, kannst du mir noch erklären wieso das es aufm LCd nich geht? ^^ Und die LED blinkelt nochn bissl schnell, soll ich jetzt einfach den TimerWert (also die 51135) ein bisschen nach unten korrigieren?^^
Ich fürchte, dass das LCD zu langsam ist. Bis er zur Ausgabe kommt, wurde in der zwischenzeit schon wieder ein Interrupt ausgelöst. CLS braucht mehr als 1 mS.
Also nach deinem Code, den du oben geschrieben hast (Presc 256, Timer1=51135) dürfte die LED etwa alle 1/4 Sekunde toggeln. Mit dem richtigen Presc von 1024 ist es jede Sekunde ein Mal... Was genau geht nicht auf dem LCD?
Hm mir ist gerade etwas kurioses aufgefallen: Ich kann den Wert vom Timer eigentlich beliebig zwischen 1 und 60000 verstellen, die LED's blinkeln nicht wahnsinnig viel schneller oder langsamer, an was liegt das? (also differenz < 1 Sekunde) da stimmt doch was nicht?
Oh da sind ja schon wieder neue Beiträge:O Okay, das mit dem LCD war eigentlich auch nur zu versuchszwecken, aber mit den LED geht das ja auch;) Aber irgendwie blinkeln die jetzt, mit Timer 51135 und Presc 1024 immernoch zu schnell :( :S
Juhu jetzt gehts! Danke:D Ich musste natürklich das Cls rauslöschen weill das geht ja immer zu lange oder? Langs an dem? Jetzts timmts auf jeden fall - danke:D Könntet ihr mir trotzdem noch sagen obs am Cls lag? ;) Danke euch allen! :D
Wenns jetzt geht, dann kann das klar daran gelegen haben ;) Notfalls kannst du auch mal den Timer in der ISR ausschalten, dann die Ausgabe machen und danach wieder einschalten - also so:
1 | Timer1_isr: |
2 | Disable Timer1 |
3 | A = A + 1 |
4 | Cls |
5 | Lcd A |
6 | Timer1 = 51135 |
7 | Enable Timer1 |
8 | Return |
Allerdings ist dann die Zeit bis zum neuen ausführen 1 Sekunde + die Zeit, was die Ausgabe benötigt.
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.