|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
int47 Član
Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2068 Aktiv.: 9.26 Kraj: Ljubljana
|
Objavljeno: Sre Apr 23, 2008 9:30 pm Naslov sporočila: |
|
|
1) Odpreš kompleten PDF od uC-ja.
2) Poiščeš "AREF"
3) Po par klikih sem v PDF-ju za atmega 16 našel tole:
Koda: |
AREF:
AREF is the analog reference pin for the A/D Converter.
Operation:
The ADC converts an analog input voltage to a 10-bit digital value through successive approximation. The minimum value represents GND and the maximum value represents the voltage on the AREF pin minus 1 LSB. Optionally, AVCC or an internal 2.56V reference voltage may be connected to the AREF pin by writing to the REFSn bits in the ADMUX Register. The internal voltage reference may thus be decoupled by an external capacitor at the AREF pin to improve noise immunity. |
|
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.04 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Apr 23, 2008 9:41 pm Naslov sporočila: |
|
|
To sem si že dvakrat prebral v datasheetu. Ampak kaj mi lahko kdo v slovenščini poenostavneje razloži kaj je to? Je to mogoče izhodna napetost za ADC? Anleščina mi ne gre najbolje... _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
MadMax Član
Pridružen-a: Pet 09 Sep 2005 22:16 Prispevkov: 4743 Aktiv.: 21.23
|
Objavljeno: Sre Apr 23, 2008 11:56 pm Naslov sporočila: |
|
|
Referenčna napetost, s katero potem žival primerja vhodni analogni signal.
Ker je tako natančno in stabilno napetost včasih težko zagotoviti (ali pa se prek tega delajo recimo temperaturne kompenzacije), je proizvajalec pustil možnost, da si sam "narediš" to napetost. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.00 Kraj: Dragomer
|
Objavljeno: Čet Apr 24, 2008 2:45 pm Naslov sporočila: Debounce je več kot if tipka |
|
|
Debounce je več kot if tipka = 0
Debounce ukaz testira, ali se je tipka ravnokar pritisnila, se pravi skočila iz 1 na 0.
To potrebuješ recimo, če hočeš spremeniti stanje števca za vsak pritisk tipke. Ko tipko pritisneš, bo šel števec za eno naprej, in če hočeš, da gre spet za eno naprej moraš tipko najprej spustiti in potem ponovno pritisniti. Če boš držal tipko pritisnjeno, se števec ne bo povečeval.
Če pa bi bil debounce to, kar je bilo napisano, samo if tipka in potem wait, bi v slučaju, da je tipka pritisnjena dalj časa, števec tekel navzgor, kaj ne?
No seveda pa je v debounce tudi zakasnitev, da se preskoči odskakovanje kontakta. Vsako stikalo je mehanski kontakt na vzmeti, in ko ga pritisnemo, kotva kar nekajkrat odskoči, predno se umiri v novem položaju. Za mikroprocesor, ki je hiter kot zlomek, bi to bilo, kot da smo nekakrat prav na hitro pritisnili in spustili tipko in spet pritisnili, in bi števec za en pritisk s prstom na tipko štel dva ali tri pritiske, v odvisnosti od mehanike stikala. Zato je v debounce vgrajena tudi zakasnitev, ki tako odskakovanje 'preskoči'.
kapiš? _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.00 Kraj: Dragomer
|
Objavljeno: Čet Apr 24, 2008 2:57 pm Naslov sporočila: In še odgovor za AREF |
|
|
AREF je referenčna napetost, ki jo mikroprocesor deli z delilniki toliko časa, da je deljena napetost enaka vhodni merjeni. Merjena napetost bo torej vedno nižja od referenčne. Mora biti, sicer je meritev napačna.
In rezultat ki ga dobiš, ni v voltih, temveč v 256-inkah referenčne napetosti če je ad pretvornik 8 bitni.
če torej daš kot referenčno napetosti recimo 5V in si na vhod priklopil napetost 2.5V boš za rezultat dobil v 8 bitnem konverterju &H80 = 128
To vrednost moraš pomnožiti z referenčno napetostjo in deliti z 256 in dobiš rezultat v voltih. In ne pozabi da delaš računske operacije s celimi števili, kjer se ne da predstaviti števila 2.5. Če torej hočeš rezultat na desetinko volta natančno, boš izmerjeno vrednost pomnožil še z 10 predno boš delil z 256, da dobiš rezultat 25, kar ti mora pomeniti 2.5V _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.04 Kraj: Maribor (Pohorje)
|
Objavljeno: Čet Apr 24, 2008 9:06 pm Naslov sporočila: |
|
|
Torej kako naj nastavim tukaj nastavitve (kopirano iz Bascom helpa), če bi imel:
1. Fotoupor vezano med Vcc in pinom PX.n
2. Fotoupor vezan med AREF pinom in pinom PX.n
Koda: |
'Config Adc = Single , Prescaler = Auto, Reference = Internal
'The reference param may be :
'OFF : AREF, internal reference turned off
'AVCC : AVCC, with external capacitor at AREF pin
'INTERNAL : Internal 2.56 voltage reference with external capacitor ar AREF pin
|
Aja, pa na feri so mi pravli, da je v enem primeru rezultat ADC-ja izražen v mili voltih. Je to res? _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.00 Kraj: Dragomer
|
Objavljeno: Čet Apr 24, 2008 11:12 pm Naslov sporočila: Moje |
|
|
Moje izkušnje so do adc pretvornika PCF8591
Kot po navadi, sem, lahko napačno, predvideval, da je povsod enako.
Na AVR-ih še nisem meril napetosti z AD pretvornikom, in ti bo verjetno odgvoril kdo drug. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2105 Aktiv.: 10.07 Kraj: Krško
|
Objavljeno: Pet Apr 25, 2008 8:10 am Naslov sporočila: |
|
|
Več o A/D-ju si preberi tukaj, imaš tudi primer kode. _________________ Denis |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5340 Aktiv.: 24.68 Kraj: Domzale
|
Objavljeno: Pet Apr 25, 2008 9:07 am Naslov sporočila: |
|
|
program_er je napisal/a: |
Aja, pa na feri so mi pravli, da je v enem primeru rezultat ADC-ja izražen v mili voltih. Je to res? |
Ja, če imaš npr. 10 bitni ADC in referenčno napetost 1,023V
In tako dalje (z malo matematike) ...
LP, Grega |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.00 Kraj: Dragomer
|
Objavljeno: Pet Apr 25, 2008 9:10 am Naslov sporočila: Odlična spletna stran, Dkone! |
|
|
Odlična spletna stran, Dkone! _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.04 Kraj: Maribor (Pohorje)
|
Objavljeno: Pet Apr 25, 2008 5:48 pm Naslov sporočila: |
|
|
Torej, uporabljam ATmega16.
Vnjegovem datasheetu med drugim piše:
Koda: |
– 8-channel, 10-bit ADC
8 Single-ended Channels
7 Differential Channels in TQFP Package Only
2 Differential Channels with Programmable Gain at 1x, 10x, or 200x
|
Mene pa zanima samo to:
Koda: |
– 8-channel, 10-bit ADC
8 Single-ended Channels
|
Čeprav mi matematika zelo gre, tistega od @vilkota ne razumem.
To je iz Bascom helpa:
Koda: |
ADC
Running mode. May be SINGLE or FREE.
PRESCALER
A numeric constant for the clock divider. Use AUTO to let the compiler generate the best value depending on the XTAL
REFERENCE
The options depend on the used micro. Some chips like the M163 have additional reference options. In the definition files you will find : ADC_REFMODEL = x
This specifies which reference options are available. The possible values are listed in the table below.
-----------------------------------------------------------------------------------------------
'The newer has options for the reference voltage
'For those chips you can use the additional param :
'Config Adc = Single , Prescaler = Auto, Reference = Internal
'The reference param may be :
'OFF : AREF, internal reference turned off
'AVCC : AVCC, with external capacitor at AREF pin
'INTERNAL : Internal 2.56 voltage reference with external capacitor ar AREF pin
|
Mi lahko kdo izračuna ali razloži ali pove še enkrat, kako naj v Bascomu to naredim, izračunam. Lahko bi kdo prilepil kak "kos" programske kode...
Čip napajam z 5.05 volta, ampak se mi zdi, da ta podatek ni pomemben. Saj referenčno izhodno napetost lahko nastavljam z ADC_REFMODEL = milivolti ? Ali ne?
Torej, koliko in kako moram nastaviti referenčno napetost, da bom na 10-bitnem ADC-ju dobil v rezultat milivolte? Če ne gre spreminjat referenčne napetosti, pa lahko kdo prilepi malo kode z nekaj primeri deljenja števcev in množenja, če je to v programu potrebno. Iz strani, ko jo je dal @dkone sem si potegnil primer kode, samo kaj mi pomaga, če to naložim v uC, če je ne razumem...
Hvala za odgovore!!! _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.00 Kraj: Dragomer
|
Objavljeno: Pet Apr 25, 2008 6:44 pm Naslov sporočila: Poizkusi tako, kot piše v help-u |
|
|
Poizkusi tako, kot piše v help-u:
Koda: |
'configure single mode and auto prescaler setting
'The single mode must be used with the GETADC() function
'The prescaler divides the internal clock by 2,4,8,16,32,64 or 128
'Because the ADC needs a clock from 50-200 KHz
'The AUTO feature, will select the highest clockrate possible
Config Adc = Single , Prescaler = Auto
'Now give power to the chip
Start Adc
'With STOP ADC, you can remove the power from the chip
'Stop Adc
Dim W As Word , Channel As Byte
Channel = 0
'now read A/D value from channel 0
Do
W = Getadc(channel)
Print "Channel " ; Channel ; " value " ; W
Loop
|
Glede na že povedano, predvidevam, da boš dobil v spremenljivki W napetost izraženo v napetostnih enotah VREF/1024
torej, če bo napetost 5V in referenčna napetost tudi 5V potem boš dobil rezultat 1024. Če hočeš to napisati v voltih z desetinkami moraš to računsko popraviti, da boš dobil 50 kar naj bi predstavilo 5.0V
Račun, ki ga moraš dodati pred Loop ukazom bo potemtakem:
Koda: |
Dim W2 as word
w2 = w * 50
w2 = w2 / 1024
print W2 |
Ampak kot rečeno, ne pripovedujem to iz lastnih izkušenj, temveč ker mislim, da bi nekako tako moralo delovati
Tisti Prescaler se mi zdi manj pomemben
In če hočeš napisati rezultat kot 5.0V potem moraš še ločiti desetinke od celih voltov v dve ločeni spremenljivki
Koda: |
dim volti as word
dim desetinke as word
volti = W2 / 10
desetinke = W2 mod 10
print "Napetost je ";volti;".";desetinke;"V " |
Najbolje je, da probaš. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.04 Kraj: Maribor (Pohorje)
|
Objavljeno: Pet Apr 25, 2008 7:06 pm Naslov sporočila: |
|
|
Finta je v tem, da trenutno ne morem probavat, ker nimam delujočega programatorja. _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.00 Kraj: Dragomer
|
Objavljeno: Pet Apr 25, 2008 8:14 pm Naslov sporočila: A, ti nas tako, hipotetično .. |
|
|
A, ti nas tako, hipotetično .. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.04 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Apr 26, 2008 10:06 am Naslov sporočila: Re: A, ti nas tako, hipotetično .. |
|
|
vilko je napisal/a: |
A, ti nas tako, hipotetično .. |
NE, jaz se samo učim zaj. Saj mam programator, pa se mi je pokvaro. Zaj pa čakam na AvrUSB prog od @VolkD.
Sem malo premišlejval pa mislim da razumem zaj to tvojo enačbo.
Če mam 8-bitni ADC moram delit potem z 256, kaj pa če imam 10-bitni?
Sem malo preračunaval pa sem ugotovil, kako dobim iz tvojega računa direktno mV. Če je referenčna napetost 5V, na vhod pa pripeljem 2,5V bo moj račun takšen:
&H80 = 128 (če mi to vrže v programu)
128 x 5 = 640
640 x 1000 (ne 10) = 640000
640000 : 256 = 2500 (in dobim rezultat v mV)
Pa jaz v primeru od @Dkone (spletne strani, ki jo je dal) ne vidim ukaza &H80... Ali to cifro shrani program v spremenljivko W (v tem primeru) in je pol v praktiki ta cifra (v našem primeru 128-) shranjena v spremenljivki W? _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 88 dni
Powered by phpBB © 2001, 2005 phpBB Group
|