UPDATE:
So, ihr seht es ist schon spät und ich bin auch schon einen verfusten Controller weiter... *grml*
Naja, muss ich schnell nen taktgenerator aufbaun...
Egal, zurück zum Thema
getestet:
-externe stromversorgung für Servos => gleiches ergebnis (verbundene massen etc...)
-anderer chip => gleiches ergebnis
-programm umschreiben, jetzt nurnoch led's blinken lassen im 4,...s rhytmus von timer0 wie oben
funktioniert irgendwie auch nicht -.- (code dafür siehe unten)
-Fuses umkehren, man weiß ja nie wenn man n anderes Programm hernimmt... => atmega32 verfust...
fuses für die clock stehen momentan so:
*ckopt = 1
*sut1 = 0
*sut0 = 1
*cksel3 = 1
*cksel2 = 1
*cksel1 = 1
*cksel0 = 0
wäre laut datenblatt dann "Ceramic resonator, slowly
rising power"
sollte doch passen oder nicht?
naja, was ich nich versteh is, warum es zu schnell blinkt/fährt
selbst wenn der statt den 16 MHz dann den internen takt von 1/4/8 MHz nehmen würde, das würde das ganze doch nur verlangsamen
also die LED's würden dann alle 8sec blinken...
komisch echt
LG RolandCode:.include "m32def.inc" .def tmp = R16 ; Allzweckregister .def counter2 = R18 ; Counter für Timer-0-Zyklen .org 0x000 rjmp Main .org OVF0addr ; Overflow0 Interrupt Vector Address rjmp OVF0_interrupt .org INT_VECTORS_SIZE OVF0_interrupt: inc counter2 cpi counter2, 255 brne end in tmp, PORTD com tmp out PORTD, tmp end: reti Main: ; hier beginnt das Hauptprogramm ldi tmp, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse out SPH, tmp ldi tmp, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse out SPL, tmp ;/*Timer 0: ldi tmp, ( 1 << CS02 ) | ( 1 << CS00 ) ; Prescaler auf 1024 out TCCR0, tmp ;=> 61.4 Overflows in der Sekunde (bei 16 MHz) ;=> alle 16,4 ms ldi tmp, TIMSK ori tmp, ( 1 << TOIE0 ) ; TOIE0: Interrupt bei Timer Overflow out TIMSK, tmp ;*/ ;Timer 0 ldi tmp, 0xFF out DDRD, tmp ldi tmp, 0x55 out PORTD, tmp ldi counter2, 0x00 sei loop: rjmp loop







Zitieren

Lesezeichen