Forum: Projekte & Code Zeitschleife für ca 1s Pause in Asm


von Mark (Gast)


Lesenswert?

Hallo,

da ich neu auf dem gebiet des MC bin, habe ich mal eine Frage, ob mir
jemand einmal Assembler code fuer 1s pause posten kann.Es handelt sich
um einen ATMEGA8 mit einem 16Mhz Oszillator.

Danke im vorraus !

Mark

von Rolf Magnus (Gast)


Lesenswert?

Es gibt im Prinzip zwei Möglichkeiten. Entweder machst du es mit einem
Timer, dann kannst du während der Wartezeit noch was anderes tun oder
den Mikrocontroller zur Stromersparnis in den Schlafmodus schalten,
oder du baust einfach eine Warteschleife.
Wie genau muß das mit der Sekunde denn sein?

von D. W. (dave) Benutzerseite


Lesenswert?

Bzw. soll das ne Uhr werden? Oder welchen Zweck verfolgst du ;)

von Mark (Gast)


Lesenswert?

eine led die blinken soll, habe aber schon was passendes und
funtionierendes vorerst gefunden.

von Martin #. (martin-)


Lesenswert?

Muss nur ein mal im Programm aufgerufen werden
1
init_16timer:
2
  ldi r16,(1<<CS12)|(0<<CS11)|(0<<CS10);;CLK/256 Timer-Vorteiler
3
  out TCCR1B,r16 
4
  ret

Und das jedes mal wenn gewartet werden soll:
[c]wait:
  ldi r16,0x00 ;Timerlöschen
  out TCNT1H,r16
  out TCNT1L,r16
  ldi r16, (1<<TOV1);TOV1-Flag löschen
  out TIFR,r16
wait_loop:
  in r16, TIFR
  sbrs r16,TOV1
  rjmp  wait_loop
  ret[c]

Mit einem 16MHz-Quarz wartet die routine ca 1.05s

von Peter D. (peda)


Lesenswert?

Die Codesammlung ist nicht dazu da, Fragen zu stellen, sondern, wie ja
der Name sagt, Code zu posten.

Deshalb kannst Du hier auch Code dazu finden:

http://www.mikrocontroller.net/forum/read-4-57760.html#new


Peter

von Mark (Gast)


Lesenswert?

Jo der Code ist ja jetzt auch gepostet *lol

von pebisoft (Gast)


Lesenswert?

schau mal mit googel , da gibt es ein programm "avrdelay".
da kannst die zeit eingeben, die mhz und bekommst dann als asm-source
die warteschleife heraus.
mfg pebisof

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
Noch kein Account? Hier anmelden.