Advertisement
Dany1858

atmega: ext interrupt

Jun 27th, 2019
3,050
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .include "8535def.inc"
  2.  
  3. .DSEG
  4. .ORG 0x60 ; La memoria dati inizia dall'indirizzo 0x60
  5.  
  6. ; interrupt jump table
  7. .CSEG  ; tutto ciò che segue riguarda la memoria programma
  8. .ORG 0x000
  9.     rjmp    RESET   ;Reset        Handle $000
  10.     rjmp    INT_0   ;INT0         Handle $001
  11.     rjmp    INT_1   ;INT1         Handle $002
  12.     reti            ;TIMER2 COMP  Handle $003
  13.     reti            ;TIMER2 OVF   Handle $004
  14.     reti            ;TIMER1 CAPT  Handle $005
  15.     reti            ;TIMER1 COMPA Handle $006
  16.     reti            ;TIMER1 COMPB Handle $007
  17.     reti            ;TIMER1 OVF   Handle $008
  18.     reti            ;TIMER0 OVF   Handle $009
  19.     reti            ;SPI STC      Handle $00A
  20.     reti            ;UART RX      Handle $00B
  21.     reti            ;UART UDRE    Handle $00C
  22.     reti            ;UART TX      Handle $00D
  23.     reti            ;ADC          Handle $00E
  24.     reti            ;EE_RDY       Handle $00F
  25.     reti            ;ANA_COMP     Handle $010
  26.  
  27. ; settaggio stack pointer
  28. RESET:
  29.     ldi r16, HIGH(ramend) ;carica in r16 il byte alto di ramend
  30.     out SPL, r16  ; salva in SPL (8bit) il contenuto di r16 (store register to i/o location)
  31.     ldi r16, LOW(ramend) ; salva in r16 il byte basso di ramend
  32.     out SPH, r16  ; salva in SPH (8bit) il contenuto di r16
  33. ; stack pointer settato
  34.  
  35. MAIN:
  36.     sei                 ;setta I di SREG a 1
  37.     ldi r17, 0x0F       ;primi (da destra) 4 bit a 1 (sense interrupt control)
  38.     out MCUCR, r17      ;setta int_0 e int_1 sul fronte di salita
  39.     ldi r17, 0xC0       ;abilita int0 e int1
  40.     out GIMSK, r17      ;i primi due bit a 1
  41.     ldi r17, 0xFF       ;tutti bit a 1
  42.     out ddra, r17       ;porta A in uscita
  43.     out porta, r17      ;tutti i bit di porta A attivi
  44.     loop: rjmp loop
  45.  
  46. INT_0:
  47.     ldi r17, 0xFF
  48.     out ddra, r17
  49.     ldi r17, 0b00001111 ;in binario primi 4 bit
  50.     out porta, r17
  51.     clr r17
  52.     reti
  53.  
  54. INT_1:
  55.     ldi r17, 0xFF
  56.     out ddra, r17
  57.     ldi r17, 0b11110000 ;in binario ultimi 4 bit
  58.     out porta, r17
  59.     clr r17
  60.     reti
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement