; vytvoril: DANYK ; http://danyk.cz .NOLIST .INCLUDE "m8def.inc" ;ATmega8 .LIST .DEF REG=R16 ;pracovni registr pojmenuje REG .EQU SMER=DDRC .EQU PORT=PORTC .CSEG .ORG 0 RJMP START ; Sem to skoci pri preruseni INT0 .ORG INT0Addr RJMP PRERUS0 ; Sem to skoci pri preruseni INT1 .ORG INT1Addr RJMP PRERUS1 ; Tohle se provede na zacatku START: LDI REG,0xFF OUT SMER,REG ;nastavi PORT jako vystupni LDI REG,LOW(RAMEND) OUT SPL,REG LDI REG,HIGH(RAMEND) OUT SPH,REG ; obe preruseni od sestupne hrany ; bity 0 a 1 jsou pro INT0, bity 2 a 3 jsou pro INT1 ; kombinace "10" nastavi citlivost na sestup. hranu LDI REG,0b00001010 OUT MCUCR,REG ; povoleni preruseni INT0 a INT1 ; bit 6 povoluje INT0 a bit 7 povoluje INT1 LDI REG,0b11000000 OUT GICR,REG LDI REG,0b00000000 ;vynuluje REG SEI ;povoli globalni preruseni ; ve smycce se nic nedeje :) SMYCKA: RJMP SMYCKA ;Tohle se vykona pri preruseni 0 (INT0) PRERUS0: INC REG ;inkrementuje REG (zvysi o 1) OUT PORT,REG ;posle REG na PORT RETI ;navrat ;Tohle se vykona pri preruseni 1 (INT1) PRERUS1: DEC REG ;dekrementuje REG OUT PORT,REG ;posle REG na PORT RETI ;navrat