Wykonuje się w 0.01ms (107taktów).
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m8adef.dat"
- $crystal = 8000000
- $hwstack = 32
- $swstack = 8
- $framesize = 24
- Config Submode = New
- Config Lcd = 16x2
- Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2
- Cursor Off , Noblink
- Cls
- Config Adc = Single , Prescaler = Auto , Reference = Avcc
- Dim Adc_read As Byte
- '-[ODCZYT ADC TYLKO OSIEM BIT]-
- Function Get_adc(byval Chnl As Byte)as Byte
- Local Mux_byte As Byte
- Select Case Chnl
- Case 0 : Mux_byte = &B01100000 'REF=AVCC,ADLAR=ON
- Case 1 : Mux_byte = &B01100001
- Case 2 : Mux_byte = &B01100010
- Case 3 : Mux_byte = &B01100011
- Case 4 : Mux_byte = &B01100100
- Case 5 : Mux_byte = &B01100101
- Case Else
- Get_adc = 0
- Exit Function
- End Select
- 'po zmianie kanału lepiej pominąc pierwszy odczyt
- Admux = Mux_byte 'ustaw kanał
- Adcsr.adsc = 1 'wystartuj konwersję
- Bitwait Adcsra.adsc , Reset 'poczekaj na zakonczenie
- Adcsr.adsc = 1 'wystartuj konwersję
- Bitwait Adcsra.adsc , Reset 'poczekaj na zakończenie
- Get_adc = Adch 'odczytaj wynik
- End Function
- Do
- Adc_read = Get_adc(0)
- Locate 1 , 3 : Lcd Adc_read ; " "
- Waitms 100
- Loop