Så här hade jag tänk mig att det skulle fungera:
1. Timer1 slår på PORTB1 när Timer1 når compare värdet och sedan är PORTB1 på hela tiden.
2. Timer1 fortsätter att gå men det spelar ingen roll.
3. När vissa kriterier i Main loopen är uppfyllda så hoppar programmet till Test loopen.
4. I Test loopen så stoppas Timer1 och nollställs(0x0000).
5. PORTB1 slås av.
6. Sedan så startas Timer1.
7. Åter till Main loopen.
8. Se punkt 1.
Kod: Markera allt
.INCLUDE "m88def.inc"
.def tmp = r16
.org 0x0000
rjmp Reset ; Reset Handler
nop ; IRQ0 Handler
nop ; IRQ1 Handler
nop ; PCINT0 Handler
nop ; PCINT1 Handler
nop ; PCINT2 Handler
nop ; Watchdog Timer Handler
nop ; Timer2 Compare A Handler
nop ; Timer2 Compare B Handler
nop ; Timer2 Overflow Handler
nop ; Timer1 Capture Handler
nop ; Timer1 Compare A Handler
nop ; Timer1 Compare B Handler
nop ; Timer1 Overflow Handler
nop ; Timer0 Compare A Handler
nop ; Timer0 Compare B Handler
nop ; Timer0 Overflow Handler
nop ; SPI Transfer Complete Handler
nop ; USART, RX Complete Handler
nop ; USART, UDR Empty Handler
nop ; USART, TX Complete Handler
nop ; ADC Conversion Complete Handler
nop ; EEPROM Ready Handler
nop ; Analog Comparator Handler
nop ; 2-wire Serial Interface Handler
nop ; Store Program Memory Ready Handler ;0x019
.org 0x001A
Reset:
; Set up the stackpointer
ldi tmp, HIGH(RAMEND)
out SPH, tmp
ldi tmp, LOW(RAMEND)
out SPL, tmp
SEI
Init_PORTB:
ldi tmp, 0b00000010
out DDRB, tmp
Init_TIMER1:
; Tid
ldi tmp, 0x7F
sts OCR1AH, tmp
ldi tmp, 0xFF
sts OCR1AL, tmp
; Set OC1A on Compare Match
ldi tmp, 0b11000000
sts TCCR1A, tmp
; Clock Select - clkI/O/64 (From prescaler)
ldi tmp, 0b00000011
sts TCCR1B, tmp
Main:
om något sker här, så hoppa till Test loopen -->
rjmp Main
Test:
; Stoppa Timer1
clr tmp
sts TCCR1B, tmp ; CS02,CS01,CS00 = 0 - No clock source(Timer/Counter stopped)
; Nolla Timer1
clr tmp
sts TCNT1H, tmp
sts TCNT1L, tmp
; Nolla Output Compare A Flagga - OCF1A
sbi TIFR1, 1
; Slå av PORTB1
--> HUR GÖR JAG FÖR ATT SLÅ AV PORTB1? <--
; Starta Timer1 - clkI/O/64 (From prescaler)
ldi tmp, 0b00000011
sts TCCR1B, tmp
rjmp Main
"interuptvektorn,mm"
Interrupts och mm, hmmm...

ska ta ta läsa lite mer om det i PDF filen när huvudvärken har släppt
