hoffentlich ist es kein Hardwarefehler. Wenn ja, weiß jemand mehr
darüber?
Hab mir jetzt mal so ein Testprogramm geholt und draufgebrannt. Damit
funktionierts auch nicht:
;+----------------------------------------------------------------------
;| Title : myAVR Grundgerüst für ATmega8
;+----------------------------------------------------------------------
;| Funktion : ...
;| Schaltung : ...
;+----------------------------------------------------------------------
;| Prozessor : ATmega8
;| Takt : 3,6864 MHz
;| Sprache : Assembler
;| Datum : ...
;| Version : ...
;| Autor : ...
;+----------------------------------------------------------------------
.include "AVR.H"
;-----------------------------------------------------------------------
-
;Reset and Interrupt vector ;VNr. Beschreibung
rjmp main ;1 POWER ON RESET
reti ;2 Int0-Interrupt
reti ;3 Int1-Interrupt
reti ;4 TC2 Compare Match
reti ;5 TC2 Overflow
reti ;6 TC1 Capture
reti ;7 TC1 Compare Match A
reti ;8 TC1 Compare Match B
reti ;9 TC1 Overflow
reti ;10 TC0 Overflow
reti ;11 SPI, STC Serial Transfer Complete
reti ;12 UART Rx Complete
reti ;13 UART Data Register Empty
reti ;14 UART Tx Complete
reti ;15 ADC Conversion Complete
reti ;16 EEPROM Ready
reti ;17 Analog Comparator
reti ;18 TWI (I²C) Serial Interface
reti ;19 Store Program Memory Ready
;-----------------------------------------------------------------------
-
main: ldi r16,lo8(RAMEND)
out SPL,r16
ldi r16,hi8(RAMEND)
out SPH,r16
sbi UCR,4 ;UCR=UCSRB=0x0B RXEN=Bit4 RX aktivieren
sbi UCR,3 ;UCR=UCSRB=0x0B UDRE=Bit3 TX aktiv
ldi r16,23 ;Baudrate 9600 einstellen
out UBRRL,r16
sbi DDRB,1 ;PWM-Ausgang 1
sbi DDRB,2 ;PWM-Ausgang 2
ldi r16,0b10000000 ;r16 = Geschwindigkeit; 0x0 rückwärts
0xF forwärts
rcall initPWM
;-----------------------------------------------------------------------
-
mainloop: wdr
rcall wait
rcall ausgabe
rcall getChar
rcall putChar
cpi r19,'+' ;schneller
breq plus
cpi r19,'-' ;langsamer
breq minus
cpi r19,'s' ;starten
breq start
cpi r19,'e' ;ende
breq ende
rjmp mainloop
;----------------------------------
plus: cpi r16,0xFF
breq mainloop
inc r16
rjmp mainloop
;----------------------------------
minus: cpi r16,0x00
breq mainloop
dec r16
rjmp mainloop
;----------------------------------
start: cpi r16,0xFF
breq mainloop
inc r16
rcall wait
rjmp start
;----------------------------------
ende: rcall wait
cpi r16,0x80
brsh drueber
inc r16
rjmp ende
drueber: cpi r16,0x80
breq mainloop
dec r16
rjmp ende
;-----------------------------------------------------------------------
-
ausgabe: push r16
push r17
ldi r17,0
out OCR1AH,r17
out OCR1AL,r16
out OCR1BH,r17
out OCR1BL,r16
pop r17
pop r16
ret
;-----------------------------------------------------------------------
-
wait: push r16
push r17
ldi r16,0xFF
loop1: ldi r17,0xFF
loop2: dec r17
brne loop2
dec r16
brne loop1
pop r17
pop r16
ret
;-----------------------------------------------------------------------
-
initPWM: push r16
sbi PORTB,1
sbi PORTB,2
ldi r16,0b10110010
out TCCR1A,r16
ldi r16,0b00011001
out TCCR1B,r16
ldi r16,0b00000000
out ICR1H,r16
ldi r16,0b11111111
out ICR1L,r16
pop r16
ret
;-----------------------------------------------------------------------
-
putChar: sbis USR,5
rjmp putChar
out UDR,r19
ret
;-----------------------------------------------------------------------
-
getChar: sbis USR,7
rjmp getChar
in r19,UDR
ret
;-----------------------------------------------------------------------
-
Kann mir jemand helfen?
Vielen Dank