mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer auf 0 setzen!


Autor: Rugby4ever (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
also ich habe mich soweit in die materie eingefunden, nur dass mir der 
befehl in assembler fehlt, mitdem ich den Timer auf 0 setzten kann(also 
er zählt wenn ich es will)! währe cool wenn ihr mir nochmal helfen 
könntet!!!

mfg rugby4ever

Autor: bluebrother (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
von welchem Controller redest du?

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du musst das entsprechende regisster auf 0 setzen. beim mega8 und timer 
0 wäre es TCNT0

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ich nicht weiß, welchen Mikrocontroller Du einsetzt, fällt die 
Antwort so allgemein aus wie Deine Frage:

Nimm den Assemblerbefehl, mit dem Du die Register anderer Module setzt 
und ersetze die Registeradresse durch die des Zählerstandes.

Welche Registeradresse dies ist findest Du im Datenblatt Deines 
Mikrocontrollers.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> nur dass mir der befehl in assembler fehlt
Noch mal (nachdem Du es in Deinem anderen Thread unter
Beitrag "Timer/Counter Setzen" anscheinend nicht verstanden 
hast): Es gibt weder in C noch in Assembler einen speziellen Befehl, um 
einen Timer irgendwie zu setzen (wohin auch immer). Du musst schauen, in 
welchem Steuerregister die entsprechenden Bits stehen, mit denen Du dem 
Timer sagen kannst, ob er laufen soll oder nicht (ich denke mal, das ist 
es was Du mit "er zählt, wenn ich es will" meinst). Dazu musst Du im 
Datenblatt des Controllers im Abschnitt, der sich mit dem Timer befasst, 
nachsehen und anschließend die entsprechenden Assembler-Befehle 
zusammensuchen, mit denen Du die Einstellungen am Steuerregister 
vornehmen kannst.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BTW: Wenn Du nicht für jede Frage einen neuen Thread aufmachst, wissen 
die Leute auch, wovon Du redest...

Autor: Rugby4ever (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi
ich habe hier mal ein programm geschrieben, weiß aber net ob das so 
funktionert weil mein nächstes problem ist, wie ich den zählerstand 
angezeigt bekommen kann!

.NOLIST
.INCLUDE "8515def.inc"
.LIST

.DEF  mp = R16
.def  w1 = R1
.def  w2 = R2
.def   w3 = R3
.def  z1 = R0
rjmp  main
main:
  ldi  mp,LOW(RAMEND)
  out  SPL,mp
  ldi  mp,HIGH(RAMEND)
  out  SPH,mp

  ldi  mp,0x00
  out  DDRD,mp

  ldi  mp,0xFF
  out  PORTD,mp

  ldi  mp,0xFF
  out  DDRB,mp
  out  PORTB,mp
loop:
  clr w1
  clr w2
  clr w3


  sbis  Pina,1
  rcall  Signal

  sbic   Pina,1
  rcall   Aus

  sbis  Pinc,2
  rcall  LED

  sbic  Pinc,2
  rcall  LEDaus

endloop:
  rjmp  loop

Signal:
  cbi   Portb,1
        ldi mp,0
  out TCCR0, mp
  ret
Aus:
  sbi   Portb,1
  ret
LED:
  cbi   Portb,2
  in      mp, TCCR0
  ret
LEDaus:
  sbi   Portb,2
  ret


Autor: Rugby4ever (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich gebe jetzt einen puls an Pina,1 und lasse mir erstmal den zustand 
mit einer led an portb,1 anzeigen. wenn der erste puls kommt, soll der 
timer auf 0 gesetzt werden und ab dann zählen! wenn jetzt ein puls an 
portb,2 kommt, soll der timer seinen wert in das register mp schreiben!
das was jetzt noch fehlt ist, dass er seinen wert mir ihrgenwie anzeigt!

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sehe nirgends wo du den Timer überhaupt
einschaltest.
Warum folgst du nicht unserem Rat und siehst dir mal
die Tutorials etwas an?

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Dafür wurden sie geschrieben (bzw. werden sie weiter geschrieben),
damit Anfänger mal einen Einstiegspunkt haben.

Auch das Datenblatt zu dienem µC wirst du brauchen. Das
kriegst du bei Atmel http://www.atmel.com, denn naturgemäß
enthalten Tutorials immer nur einen kleinen Auszug aus
den Möglichkeiten. Im Datenblatt ist aber alles beschrieben.
Nicht ganz so Benutzerfreundlich sondern mehr technisch.
Da greifen dann wieder die Tutorials. Aus den Tutorials
lernt man wie die Dinge grundsätzlich funktionieren und man
beut ein Grundverständnis auf. Mit diesem Grundverständnis
verlieren dann auch die Datenblätter ihren Schrecken, weil
man bereits einen Einstieg hat.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rugby4ever wrote:
> ich gebe jetzt einen puls an Pina,1 und lasse mir erstmal den zustand
> mit einer led an portb,1 anzeigen. wenn der erste puls kommt, soll der
> timer auf 0 gesetzt werden und ab dann zählen! wenn jetzt ein puls an
> portb,2 kommt, soll der timer seinen wert in das register mp schreiben!
> das was jetzt noch fehlt ist, dass er seinen wert mir ihrgenwie anzeigt!


Dann musst du dich entscheiden wie der Wert angezeigt
werden soll. Das richtet sich aber mehr als alles andere
nach den Möglichkeiten deiner Hardware: Welche Geräte
hängen wo dran und welche kann man für Ausgaben benutzen.
Das kann von simplen LED an einem Port bis hin zu einer
Ausgabe auf einer Grossbildleinwand in einem Zahlensystem
zur Basis 60 reichen.

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.