logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATmega 128 FAQ i wszystko o tym mikrokontrolerze

mrtip 29 Mar 2010 21:36 735 0
REKLAMA
  • #1 7896544
    mrtip
    Poziom 14  
    Witam!

    Chciałbym na forum Elektrody w tym wątku zrobić konkretny FAQ dla wszystkich AVRowców.
    Szlag mnie trafiał, jak nie umiałem odczytać w krótkim czasie 3 wejść ADC w ww atmedze128. Posiłkowałem się różnymi poradami zaczynając od PDFa. Niestety nic nie zadziałało.
    Postanowiłem odpalić BASCOMa AVR i wydobyć ów procedurę.
    W Bascomie podręcznikowy:
    
    Config Adc = Single , Prescaler = Auto
    Start Adc
    
    Dim A0 As Word
    Dim A1 As Word
    Dim A2 As Word
    
    Do
     A0 = Getadc(0)
     A1 = Getadc(1)
     A2 = Getadc(2)
    Loop
    End
    

    Po wydobyciu procedur z kompilacji BASCOMa w asemblerze odczyt pojedynczego kanału wygląda tak:
    
    ;atmega 128
    
    ;------------------------------------------------; 
    ; Output port immediate via r16 
    ; outi   port,var 
    .macro   outi 
       ldi   r16,@1 
       out   @0,r16 
    .endm
    
    .equ	ADC_H			=	0x0114
    .equ	ADC_L			=	0x0115
    
    ;--------------------------------------
    Get_ADC3:
    		outi	ADCSRA,0b10000111	;ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0
    		outi	ADMUX,0b00000011	;REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0
    		sbi 	ADCSRA,ADEN
    		rcall	GetADC
    		sts		ADC_H,r17
    		sts		ADC_L,r16	
    		ret
    ;--------------------------------------
    GetADC:
    		sbi 	ADCSRA,ADSC
    L7:		sbic	ADCSRA,ADSC
    		rjmp 	L7
    		sbi 	ADCSRA,ADSC
    L8:		sbic 	ADCSRA,ADSC
    		rjmp	L8
    		in 		R16,ADCL			;Wynik Low
    		in 		R17,ADCH			;Wynik High
    		ret
    ;--------------------------------------
    

    Powyższe procedury u mnie działają w 100%.
    Disasemblację wykonał dla mnie program o nazwie AVR Simulator IDE - Evaluation Copy v1.43 ze strony http://www.oshonsoft.com/
    Jeśli ktoś ma inne rozwiązania swoich problemów to poproszę o post.
    Dziękuję za uwagę i mam nadzieję że pomogłem.
  • REKLAMA
REKLAMA