Nugroho's blog.: ADC on ATTiny13A with PWM Output in Assembler

Wednesday, May 20, 2015

ADC on ATTiny13A with PWM Output in Assembler

Yep, here we are. I use pin B3 as ADC input, and B0 as output. The delay's vary; depend on r16 value, which is ADC value. Since the output's in PWM mode, if we connect LED to B0, the brightness is vary too.

.include "../tn13Adef.INC" 

.org $0000 
init:                       ;prescaler 50-200KHz, sys clock 1.2MHz
    ldi   r16,0b11100011    ;[ADEN(ENABLE),ADSC(START),ADATE,ADIF,ADIE,ADPS2,ADPS1,ADPS0]
    out   ADCSRA,r16        ;start adc
    ldi   r16,0b00000011    ;r16 = 3
    out   ADMUX,r16         ;select channel 3 (PORT B3)
    sbi   PORTB,PORTB3      ;enable pullup
    sbi   DDRB,0            ;set PORT B0 as output
main:
    in    r16,ADCL         
    in    r17,ADCH        
    rcall delay          
    sbi   PINB,0         
    rjmp  main

delay: 
    dec r16
    brne delay

    ret


PWM (Pulse-Width Modulation) di AVR memungkinkan output di AVR ATTiny13 berkelakuan seperti analog, dengan resolusi 256 atau, jika dihubungkan ke LED, memiliki 256 tingkat ke-terang-an (redup-terang).

Program diatas menggunakan ADC di port B3 untuk mengontrol tingkat terang-redup LED di port B0



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)