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:
Po wydobyciu procedur z kompilacji BASCOMa w asemblerze odczyt pojedynczego kanału wygląda tak:
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.
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.