Hallo Leute! Vor einiger Zeit hab ich mit nem 4433 ne Schrittmotorsteuerung gebaut. Hat bestens funktioniert. Jetzt hab ich die selbe Timerroutine für den 8515 umgeschrieben, aber da tut sich absolut nichts. Außer dem erweiterten Stack, was muss ich da noch verändern, damit das funktioniert ?? Danke, Steffen .include "8515def.inc" ;bzw. 2333def.inc .org 0x000 ; Programm kommt ganz an den Anfang des Speichers .def temp = r16 .def temp1 = r17 rjmp Init ; Reset Handler reti ; IRQ0 Handler reti ; IRQ1 Handler reti ; Timer1 Capture Handler reti ; Timer1 compare Handler reti ; Timer1 Overflow Handler rjmp Timer ; Timer0 Overflow Handler reti ; SPI Transfer Complete Handler reti ; UART RX Complete Handler reti ; UDR Empty Handler reti ; UART TX Complete Handler reti ; ADC Conversion Complete Interrupt Handler reti ; EEPROM Ready Handler reti ; Analog Comparator Handler Init: ; ###################################### ; Stack initialisieren ; ###################################### ldi temp, high(RAMEND) out SPH, temp ldi temp, low(RAMEND) out SPL, temp ; ###################################### ; Port D Datenrichtingsregister setzen ; ###################################### ldi temp, 0b00001000 out DDRD, temp ; ###################################### ; Port B Datenrichtingsregister setzen ; ###################################### ldi temp, 0x00 out DDRB, temp ; ###################################### ; Timer initialisieren ; ###################################### ldi temp, 0b00000101 ;Timer 0 auf CK 1024 einstellen out TCCR0, temp ldi temp, 200 out TCNT0, temp ldi temp, 0b00000010 ;Timer 0 Interrupt initialisieren out TIMSK, temp sei ;Interrupts allgemein aktivieren rjmp main ; ###################################### ; Hauptschleife ; ###################################### main: rjmp main ; ###################################### ; Timer ; ###################################### Timer: ; Interrupt Routine 1 push temp ; R16 sichern ldi temp, 200 out TCNT0, temp ; Timerquelltext sbi PORTD, 3 pop temp ; R16 zurück laden reti ; zurück
Für den 8515 mußt du die Interrupt-Tabelle richtig anpassen: rjmp Init ; Reset Handler reti ; IRQ0 Handler reti ; IRQ1 Handler reti ; Timer1 Capture Handler reti ; Timer1 compare A Handler reti ; Timer1 compare B Handler reti ; Timer1 Overflow Handler rjmp Timer ; Timer0 Overflow Handler reti ; SPI Transfer Complete Handler reti ; UART RX Complete Handler reti ; UDR Empty Handler reti ; UART TX Complete Handler reti ; ADC Conversion Complete Interrupt Handler reti ; Analog Comparator Handler
Danke für deine Antwort. Jetzt funktionierts ;-) Ich versuch grad das Programm, dass ich geschrieben hab im AVR 3.56 Simulator zu testen. Hab noch ne (total bescheuerte) Frage. Wie kann ich das simulierte Programm wieder anhalten und den Code abändern ?? Danke!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.