Forum: Mikrocontroller und Digitale Elektronik Timer will nicht


von Niels (Gast)


Lesenswert?

Hallo,
Ich habe mir vor ein paar Tagen das STK600 zugelegt. Mikrocontroller ist 
ein atmega2560.
Ich wollte mir einen Timer bauen der die LEDS an und aus schaltet also 
sie sollen ca im Sekundentakt blinken. Mein Programm ist an das Tutorial 
angelegt aber irgendwie funktioniert es auf dem Board nicht. Im 
Debugmode geht alles einwandfrei.
So nun mein Programmtext.
.include "m2560def.inc"
.def temp=r17
.def leds=r16
.def k=r18
.org 0x000
   rjmp main
.org OVF0addr
   rjmp overflow_timer0
main:
ldi temp,LOW(ramend)
out SPL,temp
ldi temp,HIGH(ramend)
out SPH,temp

ldi temp,0xff
out ddrb,temp


ldi leds,0x00

ldi temp,(1<<TOIE0)
sts TIMSK0,temp

ldi temp,(1<<cs00)|(1<<cs02)
out TCCR0B,temp
sei
loop:
cpi k,14
BREQ umschalten

rjmp loop
overflow_timer0:
inc k
out portb,leds
  reti
Umschalten:
com leds
ldi k,0x00
rjmp loop

von Niels (Gast)


Lesenswert?

Was vergessen Controller ist auf 8MHZ eingestellt Spannung VTarget=5V 
Aref0=0V und Aref1=0V  Hab die so eingestellt da ich nicht weis was die 
machen :D bin noch recht unerfahren hab vorher auf einem 8051er bisschen 
ws programmiert

von gast (Gast)


Lesenswert?

>sts TIMSK0,temp
Was soll das im SRAM ?

;-)

von spess53 (Gast)


Lesenswert?

Hi

>>sts TIMSK0,temp
>Was soll das im SRAM ?
>;-)

Ist richtig, weil nicht mit 'out' zu erreichen. Hast wohl noch nie mit 
grösseren AVRs gearbeitet?

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

> aber irgendwie funktioniert es auf dem Board nicht.

Was geht nicht? LEDs mit PortB verbunden?

MfG Spess

von Niels (Gast)


Lesenswert?

Klar alles richtig verbunden aber sie blinken nicht. Die LEDS sind aber 
intakt das habe ich schon getestet. Habe auch schon einen anderen Port 
belegt PortA aber das geht auch nicht.

von brumbaer (Gast)


Lesenswert?

Welche Fuses sind gesetzt ?

ist der Watchdog Timer an ?

mfg
SH

von Niels (Gast)


Lesenswert?

Fuses:
Jtagen an
Spien an aber mit nem kleinen roten fragezeichen
CKDIV8 an

von Niels (Gast)


Lesenswert?

Sry wegen doppelpost
Watchdog timer controle register alle bits gesetzt.

von Stefan B. (Gast)


Lesenswert?

> CKDIV8 an

Dann arbeitest du nicht mit 8 Mhz sondern mit 8 Mhz/8. Die Blinkzeiten 
sind ca. 4s aus/4s an.

Wenn zusätzlich der externe Takt noch nicht aktiviert ist (Fuses?), ist 
der Takt sogar nur 1 MHz/8 und die Blinkzeiten sind 32s aus/32s aus.

von Stefan B. (Gast)


Lesenswert?

> 32s aus/32s aus

32s aus/32s an natürlich

von Niels (Gast)


Lesenswert?

Ahh ok. Den clock habe ich bei Clock Generator eingestellt.. aber ich 
vermute das war falsch oder?

von Stefan B. (Gast)


Lesenswert?

> Clock Generator

Kenne ich nicht.

Im AVR Studio (Debugger/Simulator) kann man die Taktrate rel. frei 
einstellen, aber auf der der Hardware müssen zwei Sachen per Fuses 
eingestellt werden: Welche Taktquelle soll verwendet werden und soll die 
deren Taktrate durch 8 geteilt werden oder nicht.

von Niels (Gast)


Lesenswert?

Das habe ich auch eingestellt. Aber der Code ist richtig von der logik 
her oder? Weil dann kann ich das schonmal ausschließen.

von Niels (Gast)


Lesenswert?

Ok jetzt funktioneirt nicht einmal das hier :
.include "m2560def.inc"


ldi r16,0xff
out ddra,r16
ldi r19,0b10100000
out porta,r19

ende:
rjmp ende

von spess53 (Gast)


Lesenswert?

Hi

>Ok jetzt funktioneirt nicht einmal das hier :

'funktioniert nicht' ist keine Fehlerbeschreibung. Was soll da 
passieren?

MfG Spess

von Niels (Gast)


Lesenswert?

Es soll alle angeschlossenen Lämpchen an Porta anschalten.

von spess53 (Gast)


Lesenswert?

Hi

>Es soll alle angeschlossenen Lämpchen an Porta anschalten.

ldi r19,0b10100000
out porta,r19

setzt die Pins 7 und 5 auf H, den Rest auf L. Da die LEDs bei L 
leuchten, sind LED 6,4,3,2,1,0 an und LED 7 und 5 aus. Ist das so?

MfG Spess

von Niels (Gast)


Lesenswert?

Es geht! IDIOTENFEHLER ich hatte in den settings immer nen anderen Pfad 
zu nem alten projekt stehen.... ich dachte schon  da kann was nicht 
stimmen. Aber auf sowas kommt man einfach nicht wenn man den wurm wo 
anders sucht. Da ich immer auf den button auf der schaltfäche gedrückt 
hab um das programm zu überspielen hat es immer das alte 
draufgespielt...... Aber danke für die unterstützung! Falls es wiedermal 
probleme gibt hört ihr von mir..

von spess53 (Gast)


Lesenswert?

Hi

>IDIOTENFEHLER ich hatte in den settings immer nen anderen Pfad
>zu nem alten projekt stehen...

Wenn es dich tröstet, ist mir auch schon passiert.

MfG Spess

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.