Gast
#169788
Hallo Feiertagler,
irgendwie versteh ichs nicht !
AVRStudio
STK500
Simulation
Tiny13
.....
.def temp = r16
.def Bit_X = r18
.def Byte_X = r19
.def Ausg_X = r20
.include "tn13def.inc"
.equ CLOCK = 1000000 ; 1 Mhz (intern)
.equ BAUD = 1200
.equ UBRRVAL = CLOCK/(BAUD*16)-1
.ORG $000
RJMP reset ;Springe zum Initialisierungsteil
reti ;0x0001 rjmp EXT_INT0 ; IRQ0 Handler
reti ;0x0002 rjmp PCINT0 ; PCINT0 Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
reti ;0x0004 rjmp EE_RDY ; EEPROM Ready Handler
reti ;0x0005 rjmp ANA_COMP ; Analog Comparator Handler
reti ;0x0006 rjmp TIM0_COMPA ; Timer0 CompareA Handler
reti ;0x0007 rjmp TIM0_COMPB ; Timer0 CompareB Handler
reti ;0x0008 rjmp WATCHDOG ; Watchdog Interrupt Handler
reti ;0x0009 rjmp ADC ; ADC Conversion Handler
;
RESET:ldi temp, low(RAMEND) ; Main program start
out SPL, temp ; Set Stack Pointer to top of RAM
ldi temp, 0b11111111 ; 1 = Ausgang
out DDRb, temp ;Port b setzen
nop
ldi temp, 0b00001111 ; Portb-Grundzustand
out PORTB, temp
rcall initial ; Interrupt einrichten
.......
;---------------------------- Initialisierung
--------------------------------------
initial:
ldi temp, 0b00000010; Vorteiler
out TCCR0B, temp
>> ldi temp, 0b00000010
out TIMSK0, temp ; Timer Interrupt Maskenregister
;ldi temp, 0b11100111
ldi temp, 0b11110000
out TCNT0, temp ; Timer Zähler setzen
sei ; Enable interrupts
ret
===================================================
sobald der Simulatorzeiger auf _>> ldi temp, 0b00000010_
kommt werden bit 0+1 von Portb gelöscht.
auf dem STK500 scheint es richtig zu laufen (laut Oszi)
Wer weiss was falsch ist?
Gruss Kurt