Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- JMP INIT ; Reset Handler
- JMP EXT_INT0 ; IRQ0 Handler
- JMP EXT_INT1 ; IRQ1 Handler
- JMP ISR_PCINT0 ; PCINT0 Handler
- JMP ISR_PCINT1 ; PCINT1 Handler
- JMP ISR_PCINT2 ; PCINT2 Handler
- JMP WDT ; Watchdog Timer Handler
- JMP TIM2_COMPA ; Timer2 Compare A Handler
- JMP TIM2_COMPB ; Timer2 Compare B Handler
- JMP TIM2_OVF ; Timer2 Overflow Handler
- JMP TIM1_CAPT ; Timer1 Capture Handler
- JMP TIM1_COMPA ; Timer1 Compare A Handler
- JMP TIM1_COMPB ; Timer1 Compare B Handler
- JMP TIM1_OVF ; Timer1 Overflow Handler
- JMP TIM0_COMPA ; Timer0 Compare A Handler
- JMP TIM0_COMPB ; Timer0 Compare B Handler
- JMP TIM0_OVF ; Timer0 Overflow Handler
- JMP SPI_STC ; SPI Transfer Complete Handler
- JMP USART_RXC ; USART, RX Complete Handler
- JMP USART_UDRE ; USART, UDR Empty Handler
- JMP USART_TXC ; USART, TX Complete Handler
- JMP ISR_ADC ; ADC Conversion Complete Handler
- JMP EE_RDY ; EEPROM Ready Handler
- JMP ANA_COMP ; Analog Comparator Handler
- JMP TWI ; 2-wire Serial Interface Handler
- JMP SPM_RDY ; Store Program Memory Ready Handler
- INIT:
- SBI DDRB, 7 ; DDRB7 in output
- CBI PORTB, 7 ; PORTB7 resettato, il led parte da spento
- CLR R16
- OUT TCCR0A, R16 ; Timer/Counter 0 in normal mode
- LDI R16, 5
- OUT TCCR0B, R16 ; Prescaler a 1024
- LDI R16, 128 ; Maschera per l'inversione dello stato del led
- ; 128 = 0B10000000
- LDI R17, 30 ; Numero di overflow del TC0 in mezzo secondo
- LDI R20, HIGH(RAMEND) ; Inizializzazione Stack Pointer
- OUT SPH, R20
- LDI R20, LOW(RAMEND)
- OUT SPL, R20
- LDI R18, 1
- OUT TIMSK0, R18 ; Abilita l'interrupt dell'overflow del TC0
- OUT SMCR, R18 ; Abilita la Sleep Mode
- SEI ; Abilita gli interrupt globali
- MAIN:
- SLEEP ; Attiva la Sleep Mode
- RJMP MAIN
- EXT_INT0: ; IRQ0 Handler
- EXT_INT1: ; IRQ1 Handler
- ISR_PCINT0: ; PCINT0 Handler
- ISR_PCINT1: ; PCINT1 Handler
- ISR_PCINT2: ; PCINT2 Handler
- WDT: ; Watchdog Timer Handler
- TIM2_COMPA: ; Timer2 Compare A Handler
- TIM2_COMPB: ; Timer2 Compare B Handler
- TIM2_OVF: ; Timer2 Overflow Handler
- TIM1_CAPT: ; Timer1 Capture Handler
- TIM1_COMPA: ; Timer1 Compare A Handler
- TIM1_COMPB: ; Timer1 Compare B Handler
- TIM1_OVF: ; Timer1 Overflow Handler
- TIM0_COMPA: ; Timer0 Compare A Handler
- TIM0_COMPB: ; Timer0 Compare B Handler
- RETI
- TIM0_OVF: ; Timer0 Overflow Handler
- PUSH R0 ; memorizzo R0 nello Stack
- IN R0, SREG ; copio lo SR in R0
- PUSH R0 ; memorizzo R0 nello Stack
- PUSH R21 ; memorizzo R21 nello Stack
- DEC R17 ; decremento il numero di overflow
- BRNE FINE ; controllo R17 รจ arrivato a zero
- ; se รจ diverso da 0 esco dall'ISR
- ; altrimenti lo riporto al valore
- ; iniziale e inverto lo stato del led
- IN R21, PORTB ; inverto lo stato del led
- EOR R21, R16
- OUT PORTB, R21
- LDI R17, 30 ; riporto R17 al valore iniziale
- FINE:
- POP R21 ; prelevo R21 dallo Stack
- POP R0 ; prevelo R0 dallo Stack
- OUT SREG, R0 ; riporto lo SR al valore iniziale
- POP R0 ; prelevo R0 dallo Stack
- RETI
- SPI_STC: ; SPI Transfer Complete Handler
- USART_RXC: ; USART, RX Complete Handler
- USART_UDRE: ; USART, UDR Empty Handler
- USART_TXC: ; USART, TX Complete Handler
- ISR_ADC: ; ADC Conversion Complete Handler
- EE_RDY: ; EEPROM Ready Handler
- ANA_COMP: ; Analog Comparator Handler
- TWI: ; 2-wire Serial Interface Handler
- SPM_RDY: ; Store Program Memory Ready Handler
- RETI
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement