Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Picbasic pitanja za sve sto mi nije jasno

[es] :: Elektronika :: Mikrokontroleri :: Picbasic pitanja za sve sto mi nije jasno

Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 108926 | Odgovora: 530 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Picbasic pitanja za sve sto mi nije jasno28.10.2009. u 18:06 - pre 175 meseci
Pozdrav drugari evo ja sam poceo sa pitanjima kako sam vec i najavio .Krenuo sam da ucim i vezbam sa nekim prostim primerima pa sam vec uocio neke meni nejasne stvari a nigde ne mogu da pronadjem objasnjenja ni postupke kako bi ih resio ,pa da se obratim vama jer kazem ne bih vas menjao za hiljadu knjiga.Evo za pocetak jedno pitanjce od njih hiljadu koliko mislim da postavim :) deo koji me muci za sada je:
TRISA= %11110000 ' RA0..3=Outputs RA4=Input
TRISB= %00000111 ' RB0..RB2=Inputs, RB3..RB7=Outputs
e sada on je ovim definisao ulazne i izlazne portove ali kako bih ja dosao do objasnjenja da ga on nije napisao koji su ulazni a koji izlazni portovi i kako bih ja mogao da na ovaj nacin definisem ulaz izlaz portova od do odredjenog broja ,kako ide postupak na ovaj nacin?poz


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno28.10.2009. u 18:16 - pre 175 meseci
TRISA registar cuva u svojih 8 bitova (mozes da pises samo po onima kojima ti procesor dozvoljava, ostale ce da ignorise) vrednost da li je RA0 - RA7 ulaz ili izlaz

dakle skroz desni bit je RA0, skroz levi bit je RA7, broj koji pocinje sa % je binarni broj sto znaci da 11110000 znaci da je RA0-RA3 izlaz, posto vrednost 0 znaci izlaz, a RA4-RA7 su ulaz posto 1 znaci ulaz. E sada posto taj uC verovatno ima samo do RA4 on je u komentaru stavio da je RA4 input a ostali 5-7 se ignorisu. Da postoje bili bi ulaz

isto tako za TRISB, on isto tako cuva za RB0 do RB7, kao sto vidis trei bita sa desne strane su 1 znaci RB0-RB2 je ulaz (posto 1 znaci ulaz) a ostali su izlaz (posto su ostali 0 a 0 znaci izlaz) kao sto je i napisao u komentaru


 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno28.10.2009. u 18:57 - pre 175 meseci
bogdane hvala puno sada mi je jasno .Jos jedno pitanje koje me muci ove veceri ,primer:



If TEMP < 390 Then :Napon punjenja manji od 14.4 Volta

If temp < 477 then ' ako je napon manji od 12.3 idi na pocetak

pa recimo primer termostata:


If TargetTemp < 17500 then ' Not higher than 75 C. (10000+MaxTemp * 100)
If TargetTemp > 7500 then ' Not lower than -25 C. (10000-MinTemp * 100)

ovde mi nije jasno kako su dobili kojim postupkom recimo 14.4 V je broj 390 ,a 12.3 V je 477 i recimo kod programa za termostat 17500 je 75C ,a -25C je 7500 i tako od primera do primera uvek drugacije nikako da skapiram postupak .Ima jos par nekih vrednosti koje se stalno vrte u programima ali to cemo u drugom pitanju kasnije.Hvala puno na odgovoru

 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno28.10.2009. u 22:04 - pre 175 meseci
Jednostavno, izmerili su.

Za prvi slucaj verovatno je koriscen (eksterni ili interni) A/D
konvertor. On napon na ulazu pretvara u digitalno stanje od
b'00000000' do b'11111111' (za 8 bita). U primerima koje ste naveli,
ocigledno je upotrebljen A/D konvertor sa vise bitova, jer su i
vrednosti vece od maksimalnog broja koji se moze prikazati sa 8 bita
(255).

Ukoliko je napon akumulatora npr. 12,3V (akumulator je prazan), izlaz
iz A/D konvertora bice .477. Ukoliko je napon = 14,4V (akumulator je
pun) izlaz iz A/D konvertora je 390.

12,3V 477
14,4V 390

Ovde je ocigledno da se sa porastom napona vrednost iz A/D konvertora
smanjuje, pa pretpostavljam da je ulazni signal invertovan (negativna
logika). Ukoliko propustite ove dve vrednosti kroz merni interpolator
(imate na mom sajtu) mozete dobiti i ostale vrednosti. Mrzi me da to
sada uradim, ali verovatno cete dobiti nesto slicno ovome:

10V 500
12,3V 477
14,4V 390
15V 330
18V 100


U drugom primeru imate 75C i vrednost 17500, i -25C i 7500.

-25C 7500
75C 17500

Ovde je za razliku od prethodnog slucaja primenjena "normalna" logika,
pa je vrednost iz A/D konvertora proporcionalna temperaturi. Opet
mozete za dobijanje ostalih vrednosti koristiti merni interpolator, i
dobicete nesto slicno ovome:

-25C 7500
0C 8000
20C 9000
40C 10000
...
75C 17500


Pravila kako se dobijaju ove vrednosti nema. Tacne vrednosti uveliko
zavise od senzora i A/D konvertora. Najgori je slucaj kada su senzori
nelinearni, jer se onda tacne vrednosti najteze racunaju (interpolator
i tu pomaze).

Postupak dobijanja ovih vrednosti se naziva kalibracija, i svodi se na
merenje velicina (napona, temperature...) instrumentom dovoljne
preciznosti, i ocitavanje stanja iz A/D konvertora pri istom
intenzitetu fizicke velicine (naponu, temperaturi..).

Ukoliko ste na primer unimerom izmerili napon akumulatora od 14,4V i
istovremeno iz A/D konvertora dobili vrednost 390, onda vrednost 390
ocigledno odgovara naponu od 14,4V. Izmerite vrednosti za jos par
karakteristicnih tacaka, propustite ih kroz interpolator, i dobijate
sve ostale vrednosti.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno28.10.2009. u 22:53 - pre 175 meseci
kako da izmerim iz A/D konvertora vrednost ,pomocu cega i kako na kom pinu ,kada ,prilikom rada celog sklopa ili?U prvom primeru koriscen je 16F675 ,a u drugom koriscen je 16F628 e sada ako se ne varam da 16F628 nema AD ulaz i kako su to onda uradili , jer u programu nema naredbi za AD konverzaciju.Evo pocetka programa:

Universal thermostat -25/+75 C. *


TRISA= %11110000 ' RA0..3=Outputs RA4=Input
TRISB= %00000111 ' RB0..RB2=Inputs, RB3..RB7=Outputs
CMCON=7 ' Disable comparators

DEFINE LCD_DREG PORTB ' LCD on port B
DEFINE LCD_DBIT 4 ' Data bits B4..B7
DEFINE LCD_RSREG PORTA ' RS on PORTA
DEFINE LCD_RSBIT 1 ' RS on A1
DEFINE LCD_EREG PORTA ' E on PORTA
DEFINE LCD_EBIT 0 ' E on A0
DEFINE LCD_BITS 4 ' LCD 4 bit mode
DEFINE LCD_LINES 2 ' 2 line LCD display

Temperature Var Word ' Temperature storage
TargetTemp Var Word ' Desired Temperature
Hyst Var Word ' Hystereris
V Var Word ' Var. for display
B1 Var Byte ' Byte for TargetTemp calculation
B2 Var Byte ' Byte for TargetTemp calculation
Count_Remain Var Byte ' Count remaining
Count_Per_C Var Byte ' Count per degree C
Sign Var Byte ' +/- sign
Mode Var Byte ' 0=Temp. display, 1=Set Temp, 2=Set Hysteresis
DQ Var PORTA.4 ' One-wire data pin

DATA 46, 224, 20 ' Temp MSB, TEMP LSB, Hysteresis DIV 10

PORTA.2=0 ' Warm Output Low
PORTA.3=0 ' Cold Output Low
Mode=0 ' Temperature display mode

LCDOUT $FE, 1, $FE, $0C ' Clear display, cursor off

Read 0, B1 ' Read TargetTemp MSB
Read 1, B2 ' Read TargetTemp LSB
TargetTemp=B1*256+B2 ' Calculate TargetTemp value (Default=20.0 C.)
Read 2, B1 ' Read Hysteresis
Hyst=10*B1 ' Calculate Hysteresis value (Default= 2.0 C.)


Hvala puno na odgovoru i pomoci
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
79.101.229.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno29.10.2009. u 05:24 - pre 175 meseci
Nisi dao šemu, ali se iz programa jasno vidi da se koristi neki "Dallas"-ov jednožični temperaturni davač, recimo DS18S20.
Ja ljudima predložim da prvo pročitaju dokumentaciju komponenti sa kojima rade, da probaju sami, pa tek onda da se obrate za pomoć ako negde zapne jer se tako najpre pročita ono što je potrebno plus se usput pročita i dosta toga što će zatrebati kad-tad. Tako bih i tebi preporučio da pročitaš dokumentaciju za kontroler sa kojim radiš kao i za DS1820 i biće ti sve mnogo jasnije.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno29.10.2009. u 18:29 - pre 175 meseci
Da u pitanju je DS 1820 1-WIRE kolo koje u ovom slucaju radi u parazitnom modu jer napajnje dolazi sa DQ data linije,citam ja detaljno i dosta o tome ali pitanje je bilo "kako da izmerim iz A/D konvertora vrednost ,pomocu cega i kako na kom pinu ,kada ,prilikom rada celog sklopa ili?" jer sam upredhodnom pitanju dobio odgovor" Ukoliko je napon akumulatora npr. 12,3V (akumulator je prazan), izlaz
iz A/D konvertora bice .477. Ukoliko je napon = 14,4V (akumulator je
pun) izlaz iz A/D konvertora je 390."
Znaci mene interesuje kako da ocitam stanje iz A/D konvertora da bih to mogao da uporedim sa fizickom velicinom naponom ili temperaturom i izvrsio kalibraciju u programu?


[Ovu poruku je menjao Darko_zed dana 29.10.2009. u 22:00 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno29.10.2009. u 23:56 - pre 175 meseci
vrednost AD konvertora citas mikrokontrolerom. Ako je interni AD onda mozes na seriskom portu da imas debug info i da tu saljes vrednosti, mozes da imas lcd na koji to ispises, mozes da imas 1wire comm preko kog ces to da ispises, mozes da preko i2c to posaljes ... dakle, taj info imas na uC-u i treba da ga uC-om prosledis dalje. Mozes na primer da imas dugme, i kad stisnes to dugme uC upise u flash vrednost (ako uC ima svoj slobodni flas na primer)
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.87.220.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno31.10.2009. u 06:41 - pre 175 meseci
Citat:
Darko_zed:Znaci mene interesuje kako da ocitam stanje iz A/D konvertora da bih to mogao da uporedim sa fizickom velicinom naponom ili temperaturom i izvrsio kalibraciju u programu?

Dao si primer u kome se radi sa DS1820 pa sam stekao utisak da misliš kako se u PIC-u obavlja A/D konverzija. Moja greška, pogrešno protumačeno pitanje.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno31.10.2009. u 11:40 - pre 175 meseci
da li bi ovo moglo da mi pomogne da ocitam A/D vrednost i uporedim sa naponom ili temperaturom http://www.rentron.com/PICX2.htm
Hvala Bogdane na odgovoru ali ja jos nisam na tom stepenu znanja da bih mogao ono sto si mi odgovorio da pretvorim u delo ,evo ucim, citam ,trazim, mozgam i kapiram polako.Najlakse bih ukapirao kada bih video neki primer sa semom programom itako sl.Hvala i puno pozdrava
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno31.10.2009. u 12:39 - pre 175 meseci
Evo ovako. Postoje PIC16 mikrokontroleri koji nemaju integrisani A/D
konvertor. Na primer PIC16F84, 16F627, 16F628 i mnogi drugi (naveo sam
samo najpoznatije). Njima je ipak moguce izmeriti analognu vrednost
napona, ali koristeci eksterne A/D konvertore (posebna integrisana
kola) ili par hardversko/softverskih trikova. Program koji bi ovo
radio je tezi, i kao pocetniku ne bih Vam preporucio da pocnete sa
necim takvim.

Postoje opet PIC16 mikrokontroleri koji imaju integrisane A/D
konvertore. Na primer PIC16F88, PIC16F870, PIC16F877...
U PIC16 seriji postoji par tipova ovih A/D konvertora.
8-bitni A/Dkonvertor
10-bitni A/D konvertor
12-bitni A/D konvertor.

Glavna razlika izmedju ovih A/D konvertora je rezolucija merenja.
Ukoliko se meri napon izmedju 0 i +5V osmobitnim A/D konvertorom koji
daje b'00000000' za 0V i b'11111111' za 5V, rezolucija je
5V/256stanja=0.0195V.

Znaci
b'00000000' = 0V
b'00000001' = 0.195V
b'00000010' = 0.390V
b'00000011' = 0.234V
...
b'11111101' = 4.610V
b'11111110' = 4.805V
b'11111111' = 5V

Ukoliko imate 10-btini A/D konvertor, rezolucija je
5V/1024stanja=0.00488V odnosno sledeca:

b'00 00000000' = 0V
b'00 00000001' = 0.00488V
b'00 00000010' = 0.00976V
...
b'11 11111101' = 4.99024
b'11 11111110' = 4.99512
b'11 11111111' = 5V

Isto vazi i za 12-bitni A/D konvertor.

Kod nekih mikrokontrolera sa A/D konvertorima moguce je podesiti da se
umesto maksimalnog napona od +5V (uobicajenog) odabere neki drugi
(nizi). Ovo je pozeljno uraditi ukoliko mikrokontrolerom na primer
merite napon baterije od 1,5V. Nema svrhe uzeti kao maksimalni napon
5V, jer se on nikada nece moci dostici. Logicnije bi bilo odabrati
manji maksimalan napon (ovaj napon naziva se referentni), jer se
ukoliko je maksimalni napon npr. 2V dobilo sledece:

b'00000000' = 0V
...
b'11111111' = 2V

Referentni napon koji mozete ovako izabrati, nazalost ne sme biti veci
od napona napajanja mikrokontrolera, koji je uobicajeno 5V.

Da bi se mogli meriti veci naponi mora se koristiti naponski delitelj
(dva otpornika), kojim bi se ovaj napon "spustio" na dozvoljenih +5V.
Najverovatnije je takav princip primenjen prilikom merenja napona
akumulatora.

Naponski delitelj se mora dimenzionisati tako da "pokriva" i
maksimalni moguci mereni napon. Za akumulator u automobilu morao bi
bez problema meriti i do 18V, jer je moguce dobiti i toliki napon
prilikom veceg broja obrtaja morota.

Znaci:
b'00000000' = 0V
...
b'11111111' = 18V.

Pin koji se koristi za A/D konverziju mozete za Vas primerak
mikrokontrolera naci u datasheetu tog mikrokontrolera bez koga ne
mozete ni zamisliti ikakav rad. Datasheetove mozete naci na
www.microchip.com . Na primer ukucajte u polje za pretragu '16F877
datasheet'.

Vecina mikrokontrolera ima vise ulaza za A/D konverziju. Ovo ne znaci
da ima vise nezavisnih A/D konvertora, vec samo jedan, ali njega u
samom mikrokontroleru prebacuje sa jednog na drugi pin, u zavisnosti
od programa, po potrebi. Kao da ste na jedan jedini pin povezali 8
releja, tako da spolja ukljucenjem samo jednog releja birate koji ce
se napon meriti (kroz koji relej).

Na linku koji ste mi poslali privatnom porukom
http://www.rentron.com/PICX2.htm primenjen je upravo takav princip.
Iskoriscena su 3 A/D konvertora koji se fizicki nalaze na pinovima
porta A (RA0, RA1 i RA3). Meri se napon od minimalnog (0V - oznacenog
sa GND) do maksimalnog (+5V oznaceno sa VCC). Izmerene vrednosti sa
sva 3 A/D konvertora se prikazuju na inteligentnom (ko li mu dade
takvo ime) LCD displeju.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno01.11.2009. u 09:36 - pre 175 meseci
Evo recimo primera programa regulacije punjenja akumulatora to jest njegovog pocetka gde se sve definise pa ako nije problem da mi se neke stvari malo objasne:

"Program za kontrolu punjenja akumulatora" u pitanju je PIC 16F675

temp VAR WORD
ANSEL = 0
GPIO = 0
TRISIO = 0 ' Svi gpio su izlazni
TRISIO.0 = 1 ' Gpio.0 je ulazni

ANSEL = %00110001 ' Postavi ADC takt na Frc i GP0 u analog mod

ADCON0 = %10000001 ' Konfigurisi A/D Modul:
' Desno poravnanje, koristi Vref pin, na kanalu 0

Pocetak:

Petlja:
ADCON0.1 = 1 'Start konverzije
notdone:
IF ADCON0.1 = 1 Then
GOTO notdone 'Ceka low na 1-bitu na ADCON0
Endif

Temp.highbyte = ADRESH ' premsta HIGH byte rezultata u temp
temp.lowbyte = ADRESL ' premesta LOW byte rezultata u temp

if temp > 558 then
goto pun
Endif

Znaci ovde mi nije jasno komanda ANSEL(analog selekt registar)
ANSEL=%00110001 da su prva cetri bita 0001 i da je prvi kanal A/D konverzacije postavljen za ulaz ,dok sledeca tri bita imaju vrednost 011 i da se za A/D konverzaciju koristi takt FRC iz internog oscilatora reda 500hz.Kako mogu iz ovoga ANSEL=%00110001 dobiti podatak o A/D ulazu sto mislim da znam jer da je ANSEL=%00110010 onda bi drug kanal bio ulaz jer se sa desno definisu zar ne?E tu mi je jos i nejasno , sledeca tri bita imaju vrednost 011 da se za A/D konverzaciju koristi takt FRC iz internog oscilatora, kako se dolazi do ovog saznanja jer nema nigde objasnjenja?

Sledece mi je nejasno ADCON0=%10000001 ,najveci bit ima vrednost 1 pa je rezultat desno poravnat dok je bit najmanje tezine takodje postavljen na 1 kako bi A/D modul bio omogucen e sada mi nije jasno zasto bas mora najmanji bit da bude na 1 da bi bio omogucen i kako se uopste podesava sve to.Ovde je u igri koliko vidim samo 8 bita a A/D konvertor je 10 bita jer se to vidi sa ocitavanja jer ima preko 255 stanja (if temp > 558 then).Postoji komanda ADCON0 i ADCON1 u cemu je razlika.Molio bih objasnjenje i za ovo jer mi nije jasna komanda.
Izvinite ako malo davim sa ovakvim pitanjima koja su mozda neka osnova koja treba da se zna imam literaturu ali nije bas detaljno objasnjeno i koce me ovakve stvari a hocu da bas saznam zasto je to tako i objasnjenja o tome kako bih lakse presao na druge stvari.Hvala puno i pozdrav
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.87.220.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno01.11.2009. u 10:16 - pre 175 meseci
Zanimljivo da na MICROCHIP sajtu ne postoji kontroler 16F675. Da nije 676? U svakom slučaju, imaš sve objašnjeno u PDF-u samo treba pažljivo čitati.
Registar ANSEL odredjuje da li je odgovarajući pin digitalni I/O ili analogni ulaz.
Registar ADCON0 si ispravno protumačio i to tako mora. Znači, konstruktor mikrokontrolera je rekao "kada se setuje bit 0 registra ADCON0, tada će A/D konvertor biti uključen". Kao što je proizvodjač TV-a rekao "kada se pritisne crveno dugme OI na daljincu, tada će TV da se isključi". Znači, ADCON0, ADCON1, kao i još mnogi drugi, su registri (ne komande, komanda je postavljanje sadržaja registra) koji kontrolišu rad kontrolera, i to je jednostavno tako. Zato treba dobro proučiti dokumentaciju i sve će "leći" samo od sebe.
A rezultat konverzije se čita iz druga 2 registra.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno01.11.2009. u 10:48 - pre 175 meseci
Greska izvinite ne 16F675 nego 12F675
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.87.220.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno01.11.2009. u 11:24 - pre 175 meseci
Citat:
Darko_zed:ANSEL=%00110001 da su prva cetri bita 0001 i da je prvi kanal A/D konverzacije postavljen za ulaz ,dok sledeca tri bita imaju vrednost 011 i da se za A/D konverzaciju koristi takt FRC iz internog oscilatora reda 500hz.Kako mogu iz ovoga ANSEL=%00110001 dobiti podatak o A/D ulazu sto mislim da znam jer da je ANSEL=%00110010 onda bi drug kanal bio ulaz jer se sa desno definisu zar ne?E tu mi je jos i nejasno , sledeca tri bita imaju vrednost 011 da se za A/D konverzaciju koristi takt FRC iz internog oscilatora, kako se dolazi do ovog saznanja jer nema nigde objasnjenja?

Moram da priznam da meni nije baš jasno šta tebi nije jasno. Lepo si to analizirao, donja 4 bita odredjuju koji će pin biti analogni, a koji digitalni. U konretnom slučaju bit 0 je postavljen kao analogni, a takodje je preko TRISIO registra taj bit postavljen kao ulazni (tako mora). A podešavanje oscilatora za konverziju je objašnjeno malo niže, a i piše da ima još informacija u dokumentu DS33023.

Citat:
Darko_zed:Sledece mi je nejasno ADCON0=%10000001 ,najveci bit ima vrednost 1 pa je rezultat desno poravnat dok je bit najmanje tezine takodje postavljen na 1 kako bi A/D modul bio omogucen e sada mi nije jasno zasto bas mora najmanji bit da bude na 1 da bi bio omogucen i kako se uopste podesava sve to.Ovde je u igri koliko vidim samo 8 bita a A/D konvertor je 10 bita jer se to vidi sa ocitavanja jer ima preko 255 stanja (if temp > 558 then).Postoji komanda ADCON0 i ADCON1 u cemu je razlika.Molio bih objasnjenje i za ovo jer mi nije jasna komanda.

Ovo sam ti objasnio u prethodnoj poruci. Ako ti i dalje nije jasno, probaj malo detaljnije da opišeš šta te tačno buni.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.20.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno01.11.2009. u 13:11 - pre 175 meseci
Hvala Sinisa puno, sada su mi neke stvari jos jasnije ,poslusao sam tvoj savet procitao o kontroleru podatke i resio dilemu i razjasnio ANSEL i ADCON0 to jest ukapirao sam da imaju definisana fabricka podesavanja po bitovima kao sto kazes .
Interesuje me sledece iz primera:

ADCON0 = %10000001 ' Konfigurisi A/D Modul:
' Desno poravnanje, koristi Vref pin, na kanalu 0


ovako moje vidjenje stvari , 1 na 7bitu kao sto se vidi iz tabele je komanda za desno poravnanje "Desno poravnanje-iz primera" , e onda iz primera "koristi Vref pin", kako kada je za to zaduzen 6bit a on je na 0 a 0=Vdd a 1=Vref pin?????? i predpostavljam "na kanalu 0" jer je za to zaduzen bit3-2 a on je 00 sto je 00=chanel 00(AN0) a definisano je i TRISIO.0 sto znaci da je Gpio.0 ulazni ako se ne varam(molim ispravku ako gresim).
Ansel registar mi je sada u potpunosti jasan jer se sve vidi iz tabele samo mi nije jasno zasto je u pocetku programa stojalo
ANSEL = 0 sta ovo znaci i nasta utice u programu?
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.87.220.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno01.11.2009. u 14:51 - pre 175 meseci
Da, dobro si ovo primetio za bit 6 registra ADCON0, po meni je greška u komentaru. Znači, registar je u tom primeru podešen tako da mu je Vref u stvari jednak Vdd. Takodje si u pravu i za bitove 3 i 2, tj. da je odabran kanal 0. A to što je na početku ANSEL postavljen prvo na 0, a malo niže mu je promenjena vrednost, može da bude nekoliko razloga: ili je programer iskoristio početak nekog programa i zaboravio da izbriše, ili programer misli da tako treba, ili jednostavno ne zna da tako ne treba ;). U svakom slučaju je ta prva naredba koja postavlja ANSEL na 0 potpuno nepotrebna.

Pozdrav.
Sinisha

 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.47.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno02.11.2009. u 09:22 - pre 175 meseci
Da dodam još jednu stvar koja bi mogla da te buni u tom primeru:

TRISIO = 0 ' Svi gpio su izlazni
TRISIO.0 = 1 ' Gpio.0 je ulazni

Ovo je takodje nepotrebno, dovoljna je jedna naredba:

TRISIO=1 ili binarno TRISIO=%00000001

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
93.86.53.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno02.11.2009. u 11:26 - pre 175 meseci
Da Sinisa shvatio sam ,hvala na objasnjenju i pomoci budi pozdravljen.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
109.93.133.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno14.12.2009. u 15:26 - pre 173 meseci
Pozdrav drugari evo mene opet ,imam mali problem koji ja nisam uspeo da resim .Problem je u sledecem evo programa :


TRISB = %00001000
Pocetak:
PORTB.2 = 1
PORTB.1 = 0
Pause 10
PORTB.2 = 0
PORTB.1 = 1
pause 10
Goto Pocetak

kao sto vidite pin RB3 je ulazni dok su ostali izlazni i sada je stvar u tome kada mi pin RB3 bude "low" ili "high" nebitno ,to ja definisem, ciklus koji se odvija na portu RB1 i RB2 se ne prekida ali da traje jos samo tri sekunde i prekida ciklus do sledece promene stanja na RB3.Sta fali jos i kako u stvari da ostvarim ovo na ovom primeru sto sam dao?Pozdrav i hvala

 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Picbasic pitanja za sve sto mi nije jasno

Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 108926 | Odgovora: 530 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.