1 Sekunde mit Timer1 ATmega32 (Bascom) Hilfe beim berechnen

Gast #1396768
Lesenswert?

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
Gast #1396783
Lesenswert?

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?^^
Gast #1396797
Lesenswert?

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?
Gast #1396799
Lesenswert?

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
Gast #1396804
Lesenswert?

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
#1396818
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren