mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 1 Sekunde mit Timer1 ATmega32 (Bascom) Hilfe beim berechnen


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens Schmitt (Firma: eXtensive media) (djstorm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?^^

Autor: Thomas K. (tkroth) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jens Schmitt (Firma: eXtensive media) (djstorm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens Schmitt (Firma: eXtensive media) (djstorm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Takt stimmt auch? 14745600 Hz

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens Schmitt (Firma: eXtensive media) (djstorm)
Datum:

Bewertung
0 lesenswert
nicht 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:
Timer1_isr:
Disable Timer1
A = A + 1
Cls
Lcd A
Timer1 = 51135
Enable Timer1
Return

Allerdings ist dann die Zeit bis zum neuen ausführen 1 Sekunde + die 
Zeit, was die Ausgabe benötigt.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.