ADCON pomoci

B

Beng123

Guest
Im nového v edaboard a teraz otázku.
Jako já vím, kedy konverziu analógového na digitálne vysielanie,
čo je výsledok wil skladovať v ADRESH A ADRESL.
Môže mi niekto povedať, čo sa o nich líšia?
ak aj jz WAN poslať jeden bit,
tu a tam jen.
Ako som si výsledok 1 alebo 0 z ADCON uložené miesto?

 
u môže vidieť listu pic 16F877a.

'(*
'* Názov projektu:
'ADC_on_Leds
'* Copyright:
'(C) mikroelektronike, 2005 - 2006
'* História:
'20050312:
'- Pôvodná správa.
'* Popis:
'Tento kód demonštruje použitie knižnice funkcií pre ADC konverzie
'(10 bitov) výsledok je zobrazený na portd a portb
'(Dva najvýznamnejšie bity sú zobrazené na portb).
'* Testovacia zostava:
'MCU: PIC16F877A
'Dev.Board: EasyPIC3
'Oscillator: ZÚ, 8,000 MHz
'Ext.Moduly: Žiadne
'SW: mikroBasic v5.0 alebo vyšší
'* Poznámky:
'- Ak používate EasyPIC3, použitie skokan na hornom rohu sa pripojiť potenciometr k RA2
'*)
Program ADC_on_Leds

přitlumit temp_res ako slovo

hlavné:
ADCON1 = $ 80 'konfiguráciu analógových vstupov a Vref
TRIS = $ FF 'PORTA označiť ako vstupné
TRISB = $ 3F 'vymenovať RB7, RB6 pinů ako výstupy
TRISD = $ 0 'vymenovať PORTD ako výstup
zatiaľ čo pravda
temp_res = ADC_read (2)
'teraz môžete použiť temp_res ...'
PORTD = temp_res' poslať nižšia 8 bitov na PORTD
PORTB = slovo (temp_res>> 2)
'Poslať dva najvýznamnejšie bity na PORTB, kolíky RB7, RB6
zamieriť
koniec.

 
Nazdar!
Od ADC výsledkom je 10 bitové celé preto, že je uložený v dvoch rôznych registrov ADRESH a ADRESL.V ADRESH obsahuje najvýznamnejšie bity, kde ako ADRESL obsahuje najmenej významné bity.

Nerozumiem, prečo u chcú len 1 alebo 0 z ADC výsledkom registrov.
Ak chcete u svoje rozhodnutia na základe výsledkov z ADC porovnajte výsledok s určitou pevnú úroveň dostať rozhodnutia,
napríklad
unsigned int resut;
#
Define Max_value 177;

result = ADRESH;
result = (result <<

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Chladný" border="0" />

| ADRESL;

Výsledkom teraz obsahuje celkom ADC KONVERZIU výsledok.U možno porovnať s ničím, čo by sa dostať rozhodnutia,
napríklad
if (výsledok> Max_value)
LED = 1;
iné
LED = 0;

Dúfam, že to pomôže.
Pozdravy.Pridané po 22 minútach:Ospravedlňujeme sa skutočným linka
result = (result <<8 | ADRESL);

aj hodnoty vedieť, ako sa smajlík zadanej rovnice?

Pozdravy.

 
wase Napísal:

Nazdar!

Od ADC výsledkom je 10 bitové celé preto, že je uložený v dvoch rôznych registrov ADRESH a ADRESL.
V ADRESH obsahuje najvýznamnejšie bity, kde ako ADRESL obsahuje najmenej významné bity.Nerozumiem, prečo u chcú len 1 alebo 0 z ADC výsledkom registrov.

Ak chcete u svoje rozhodnutia na základe výsledkov z ADC porovnajte výsledok s určitou pevnú úroveň dostať rozhodnutia, napríkladunsigned int resut;

# Define Max_value 177;result = ADRESH;

result = (result <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Chladný" border="0" /> | ADRESL;Výsledkom teraz obsahuje celkom ADC KONVERZIU výsledok.
U možno porovnať s ničím, čo by sa dostať rozhodnutia, napríkladif (výsledok> Max_value)

LED = 1;

iné

LED = 0;Dúfam, že to pomôže.

Pozdravy.
Pridané po 22 minútach:
Ospravedlňujeme sa skutočným linka

result = (result <<8 | ADRESL);aj hodnoty vedieť, ako sa smajlík zadanej rovnice?Pozdravy.
 
Hodnoty sú automaticky uložené v ADRESH a ADRESL po ukončení prevodu.Nemusíte sa pohybovať údajov v týchto registroch, len čítal.
Môžete tiež nakonfigurovať ADC modul sa vľavo alebo vpravo oprávnené.S odišiel, ADC MSB je bit 7 ADRESH a 2 LSB
to sú uložené v bitoch 7,6 alebo ADRESL.Právo je odôvodnené prostě opačne.

a 'result = (result <<8 | ADRESL),' C alebo základné verím.

BuriedCode.

 
Buriedcode Napísal:

Hodnoty sú automaticky uložené v ADRESH a ADRESL po ukončení prevodu.
Nemusíte sa pohybovať údajov v týchto registroch, len čítal.

Môžete tiež nakonfigurovať ADC modul sa vľavo alebo vpravo oprávnené.
S odišiel, ADC MSB je bit 7 ADRESH a 2 LSB to sú uložené v bitoch 7,6 alebo ADRESL.
Právo je odôvodnené prostě opačne.a 'result = (result <<8 | ADRESL),' C alebo základné verím.BuriedCode.
 
Nazdar!

Myslela som si, že ste boli ur písania kódu v jazyku C.Ak ur pomocou montážnych potom kód bude úplne iný.Navyše, ako už bolo posta, že u hodnoty musieť uložiť výsledok v ADRESH a ADRESL registrov.ADC sa automaticky ukladá výsledok do týchto registrov po ukončení prevodu.U musieť prečítať Výsledky z týchto registrov a umiestniť ho na niektoré premenné pred začatím nového konverzia.
Ak používate u montážne potom môžem dať ua kód, ktorý bude nielen zachrániť výsledok, ale tiež ju previesť na BCD., Ktoré možno ľahko zobraziť.

Pozdravy.

 
wase Napísal:

Nazdar!Myslela som si, že ste boli ur písania kódu v jazyku C.
Ak ur pomocou montážnych potom kód bude úplne iný.
Navyše, ako už bolo posta, že u hodnoty musieť uložiť výsledok v ADRESH a ADRESL registrov.
ADC sa automaticky ukladá výsledok do týchto registrov po ukončení prevodu.
U musieť prečítať Výsledky z týchto registrov a umiestniť ho na niektoré premenné pred začatím nového konverzia.

Ak používate u montážne potom môžem dať ua kód, ktorý bude nielen zachrániť výsledok, ale tiež ju previesť na BCD.
, Ktoré možno ľahko zobraziť.Pozdravy.
 
Ahoj Beng123,
Vzhľadom k tomu, ze ADC Fotografie mikroúdajov je 10 bit, výsledok je 10 bitov, a tým na udržanie výsledku, Fotografie má 2x 8 bitov registra.Dolné 8 bity sú uložené v Adresl a vyššie 2 bity sú uložené v Adresh registra.Ostatné 6 bitov zo Adresh registra zostáva prázdne.Ak potrebujete 10 bitovou Výsledkom je,
že budete musieť použiť oba registre.Ak chcete, 8 bitov výsledku, môžete nastaviť ADFM bit v Adcon1 zaregistrovať, aby bolo správne dôvody, a potom používať iba Adresl registra získať nižšiu 8 bitov výsledku.Alebo môžete vykonať ADDM bit 0 a tým bude výsledok ľavej oprávnená a potom používať iba Adresh registrovať na získanie vyšších 8 bitov a odchode nižšia 2 bity v Adresl registrovať.
Riaďte sa ADC časť manuálu pre PIC chcete použiť, a bude vám jasné.Je veľmi jednoduché pochopiť.Vďaka.

 

Welcome to EDABoard.com

Sponsor

Back
Top