Nochmal etwas gebastelt. Jetzt habe ich ein Dauerleuchten an PIN4 = PG5 aber warum versteh ich grad ned.
Hier mal zum Update
.include "m2560def.inc"
.DEF temp = r16
.CSEG
.ORG 0x0000 //Reset
rjmp INIT
.ORG 0x0002 //EXT_INT0
reti
.ORG 0x0004 //EXT_INT1
reti
.ORG 0x0006 //EXT_INT2
reti
.ORG 0x0008 //TC2_CTC
reti
.ORG 0x000A //TC2_Overflow
reti
.ORG 0x000C //TC1_Capture Event
reti
.ORG 0x000E //TC1_CTC_A
reti
.ORG 0x0010 //TC1_CTC_B
reti
.ORG 0x0012 //TC1_Overflow
reti
.ORG 0x0014 //TC0_CTC
reti
.ORG 0x0016 //TC0_Overflow
reti
.ORG 0x0018 //Serielle Übertragung fertig
reti
.ORG 0x001A //USART_Rx fertig
reti
.ORG 0x001C //USART_Datenregister leer
reti
.ORG 0x001E //USART_Tx fertig
reti
.ORG 0x0020 //ADC-Wandlung fertig
reti
.ORG 0x0022 //EPROM bereit
reti
.ORG 0x0024 //Analog Comparator
reti
.ORG 0x0026 //TWI
reti
.ORG 0x0028 //Programmspeicher voll
reti
INIT: ldi temp,LOW(RAMEND)
out SPL,temp
ldi temp,HIGH(RAMEND)
out SPH,temp
sbi DDRG,5 //Ausgang für PWM = OC2/ bei Atmega8 = PB3/ Atmega 2560 PB4
ldi temp,0b00001100
//Bits 0 bis 2 = Taktteiler 256
//Bits 3 und 6 = Fast PWM
//Bits 4 und 5 = nichtinvertierend
out TCCR0B,temp
loop: ldi temp,64
out PB5,temp //Vorwahl für 25% Pin PB4 auf High
rcall W1S
ldi temp,128
out PB5,temp
rcall W1S
ldi temp,192
out PB5,temp
rcall W1S
ldi temp,255
out PB5,temp
rcall W1S
ldi temp,0
out PB5,temp
rcall W1S
rjmp loop
.include "LIB/Zeitasm.asm"
.EXIT