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.