; ATtiny15L LED blinker ; Row Control: PB5, PB4 (cathode) ; Column Ctrl: PB3, PB0, PB1 (anode) ; Button Ctrl: PB2 (INT0) ; ; eric@elegantinvention.com ; lain<3jack .include "tn15def.inc" ; friggin include lacks PORTB5 b/c ; external #RESET has to be disabled.. .equ PORTB5 = 5 .equ PB5 = 5 ; define our control lines .equ ROW1 = PORTB5 .equ ROW2 = PORTB4 .equ COL1 = PORTB3 .equ COL2 = PORTB0 .equ COL3 = PORTB1 .equ BTN_PIN = PORTB2 ; modes .equ m_cw = 0x00 .equ m_ccw = 0x01 .equ m_cw2 = 0x02 .equ m_ccw2 = 0x03 .equ m_ball = 0x04 .equ m_bhalf = 0x05 .equ m_down = 0x06 .equ m_up = 0x07 .equ m_sleep = 0x08 ; "variables" .def count1 = R17 .def count2 = R18 .def mils = R19 ; milliseconds to delay .def mode = R20 .def temp = R21 .cseg .org 0 rjmp main ; reset condition .org INT0addr rjmp button ; button pressed (int0 vector 0x001) .org INT_VECTORS_SIZE ; start after interrupt vectors delay: ret button: reti main: ldi mode, m_sleep ; set default mode ser temp ; temp=0xff (all pins output) cbr temp, (1<