Advertisement
Guest User

Untitled

a guest
Jul 29th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Pulsgivare
  2. ;INT0 = PD2 =   Trycksensor
  3. ;INT1 = PD3 =   Terminal B
  4. ;       PD4 =   Terminal A
  5. ;--- INITERING INTERRUPTS ---
  6. INTINIT:    cli
  7.             ldi     WREG, 0x00          ;Sätt controllDDRA
  8.             out     DDRD,WREG
  9.             ldi     WREG, 0b00000100
  10.             out     PORTD, WREG
  11.             ldi     WREG, 0xC0
  12.             out     GIMSK, WREG
  13.             ldi     WREG, 0x06
  14.             out     MCUCR, WREG
  15.             sei
  16.             ret
  17.  
  18.  
  19. ;--- Tryckknappen ---
  20. EXT_INT0:
  21.             push    TEMP
  22.             in      TEMP, SREG
  23.             sbr     PULS, TRYCK
  24.         ;   ldi     ZH, high(2*STRINGTEST)          ; tar in data från table -> Z
  25.         ;   ldi     ZL, low(2*STRINGTEST)
  26.         ;   rcall   LCDPRINT
  27.         ;   ldi     WREG, 0b00000100
  28.         ;   out     PORTB, WREG
  29.             out     SREG, TEMP
  30.             pop     TEMP
  31.             reti
  32.  
  33. ;--- Vridet ---
  34. EXT_INT1:
  35.             push    TEMP
  36.             push    WREG
  37.             push    TEST
  38.  
  39.             in      TEMP, SREG
  40.             in      TEST, PIND
  41.             andi    TEST, 0b00011000
  42.             cpi     TEST, 0b00011000   
  43.             breq    HOGERVRID
  44.             cpi     TEST, 0b00000000
  45.             breq    HOGERVRID
  46.             cpi     TEST, 0b00001000
  47.             breq    VANSTERVRID
  48.             cpi     TEST, 0b00010000
  49.             breq    VANSTERVRID
  50. VRIDKLAR:   out     SREG, TEMP
  51.             pop     TEST
  52.             pop     WREG
  53.             pop     TEMP
  54.             reti
  55.  
  56. VANSTERVRID:sbr     PULS, VANSTER
  57.             ldi     ZH, high(2*STRINGVT)            ; tar in data från table -> Z
  58.             ldi     ZL, low(2*STRINGVT)
  59.             rcall   LCDPRINT
  60.             rjmp    VRIDKLAR
  61. HOGERVRID:  sbr     PULS, HOGER
  62.             ldi     ZH, high(2*STRINGHT)            ; tar in data från table -> Z
  63.             ldi     ZL, low(2*STRINGHT)
  64.             rcall   LCDPRINT; KOMMER ALLTID HIT DIN DUMMA FAN!
  65.             rjmp    VRIDKLAR
  66.  
  67. ;--- OUTPUT ---
  68. VRIDEN:    
  69.             cpi     PULS, TRYCK
  70.             breq    TRYCKT
  71.             cpi     PULS, HOGER
  72.             breq    VHOGER
  73.             cpi     PULS, VANSTER
  74.             breq    VVANSTER
  75.             rjmp    DVRIDEN
  76.  
  77. TRYCKT:     ldi     ZH, high(2*STRINGTEST)          ; tar in data från table -> Z
  78.             ldi     ZL, low(2*STRINGTEST)
  79.             rcall   LCDPRINT
  80.             cbr     PULS, $FF
  81.             rjmp    DVRIDEN
  82.  
  83. VHOGER:    
  84.             ldi     ZH, high(2*STRINGH)         ; tar in data från table -> Z
  85.             ldi     ZL, low(2*STRINGH)
  86.             rcall   LCDPRINT
  87.             cbr     PULS, $FF
  88.             rjmp    DVRIDEN
  89.  
  90. VVANSTER:  
  91.             ldi     ZH, high(2*STRINGV)         ; tar in data från table -> Z
  92.             ldi     ZL, low(2*STRINGV)
  93.             rcall   LCDPRINT
  94.             cbr     PULS, $FF  
  95.             rjmp    DVRIDEN
  96.            
  97. /*;--- KLOCKA ---
  98. TIM0_OVF    push    TEMP
  99.             push    WREG
  100.             in      TEMP, SREG
  101.  
  102.             out     SREG, TEMP
  103.             pop     WREG
  104.             pop     TEMP
  105.             reti
  106. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement