Nugroho's blog.: And Finally the Breathing LED is Here, :)

Thursday, May 28, 2015

And Finally the Breathing LED is Here, :)


Jonathan Ive style, Old Macbook Pro sleep indicator LED.

Using interrupt, fast PWM on ATTiny13A.





.include "../tn13Adef.INC" 
.def a = r16
.def b = r17
.def c = r18
.def d = r19
.org $0000              ; startup vector
    rjmp onReset
.org $0006              ; compare match vector
    rjmp Tim0CompA
onReset:
    ldi a, 1
    out OCR0A,a
    ldi b, 1
    ldi c, 0
    ldi d, 255
    
    sbi DDRB,0          ; port B0 as output
    
    ldi a, 0b10000011   ; pwm mode 3
    out TCCR0A, a
    
    ldi a, 0b00000011   ; divider 01/no 10/8 11/64 100/256 101/1024
    out TCCR0B,a
    
    ldi a, 0b0000100    ; enable compare interupt
    out TIMSK0,a
    
    sei

main:
    rjmp main
    
Tim0CompA:
    in a, OCR0A
    rjmp incdec
        switch:
    out OCR0A,a
    reti

incdec:
    sbrs b,0
    rjmp deca
    inc a
        back:
    cp a,c
    breq oneB
    cp a,d
    breq zeroB
        bBack:
    rjmp switch
    
    
deca:
    dec a
    rjmp back
    
oneB:
    ldi b,1
    rjmp bBack
zeroB:
    ldi b,0

    rjmp bBack
.

No comments:

323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)