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 6 ... Dalje > >>

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.149.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno14.12.2009. u 18:26 - pre 174 meseci
Jedan od načina bi bio uvodjenje interapta na prekoračenje TMR0 ako ti treba vremenska baza još negde. Drugo rešenje, koje mislim da je primerenije tvom nivou poznavanja mikrokontrolera, a i sasvim lepo može da reši ovaj problem, je uvodjenje brojača koji bi se uvećao pri svakom prolasku kroz petlju. Npr ovako:


brojac var byte

TRISB = %00001000
brojac=0

Pocetak:
if portb3.0=0 then ; ili =1, ili ovde ispitaš ono što tebi treba
brojac=1
endif

PORTB.2 = 1
PORTB.1 = 0
Pause 10
PORTB.2 = 0
PORTB.1 = 1
pause 10

if brojac > 0 then
brojac=brojac+1
if brojac=150 then ; 150 * 20 ms pauze je 3 sekunde
brojac=0
; uradi šta hoćeš jer je upravo ispunjen tvoj uslov od 3 sekunde
endif
endif

Goto Pocetak


To je suština, sad ti prilagodi svojim potrebama.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
79.101.220.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno05.01.2010. u 12:21 - pre 174 meseci
Pozdrav i srecna nova godina ,evo dosla i sa novim problemima.Problem mi je u tome sto sam radio nesto sa PIC16F628 i dosao sam do nekih nejasnoca evo ovako:

TRISA= %11110000 ' RA0..3=izlaz RA4=ulaz
TRISB= %00000111 ' RB0..RB2=izlaz, RB3..RB7=ulaz
CMCON=7 ' onemoguci komparator

stvar je u tome sto sam trazio u datasheet-u za kontroler i nisam nasao ovu komandu CMCON=7 da onemogucuje komparator a bez njega mi RA portovi nisu u funkciji izlaza.Ako mi neko moze detaljnije objasniti komande i sta mu znaci =7 sto onemugucuje comparator jer u CMCON REGISTER toga nema.

sledeci problem je :
TRISA= %00000000
TRISB= %00000000
CMCON=7

proba:
porta.1 = 1
pause 500
porta.2 = 1
pause 500
porta.1 = 0
pause 500
porta.2 = 0
pause 500
goto proba2
proba2:
if brojac = 150 then brojac = 0
portb.0 = 1
portb.1 = 0
pause 50
portb.0 = 0
portb.1 = 1
pause 50
if portb.7 = 0 then brojac = brojac + 1
if brojac = 150 then PORTb.0 = 1 : PORTB.1 = 1
IF BROJAC = 150 THEN GOTO proba
goto proba2

problem mi je u tome sto mi portb.0 na izlazu daje 0 i nece da blinka kao portb.1 ,znaci tu su vezane led diodice i jedna treperi ,a druga je ugasena non stop to jest portb.0=0.Na simulaciji radi ,a prakticno nece iako sam menjao dva mikrokontrolera isto jer sam mislio da je on u pitanju.Znaci sve radi super i prolazak kroz petlju sa brojacem ali nece da treperi portb.0 negde gresim ,a ne vidim gde,a neka posebna podesavanja portab nisam nasao .poz
 
Odgovor na temu

*mile*
Nis

Član broj: 84755
Poruke: 79
109.93.195.*



Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno05.01.2010. u 16:03 - pre 174 meseci
Pozrdrav,

Kada uneses CMCON = 7, to je isto kao da si uneo CMCON = %00000111, sto znaci da bitove 0, 1 i 2 postavljas na ogicku jedinicu a
ostale 3, 4, 5, 6, 7 na logicku nulu.

Pogledaj malo bolje datasheet.

Srecna vam svima nova godina!!!

Prikačeni fajlovi
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
79.101.220.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno05.01.2010. u 16:44 - pre 174 meseci
hvala druze ukapirao sam a sta je sa drugim problemom mozes li tu pomoci-pocetnik sam.hvala
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 01:35 - pre 174 meseci
Daj prvo da vidimo ovo sa isptivanjem stanja brojača; ne razumem zašto 3 puta ispituješ da li je brojač došao do 150. Sve to može u jednom IF-u što je logičnije, preglednije i troši manje prog. memorije:

Code:

if brojac=150 then
  brojac=0
  portb.0=1
  portb.1=1
  goto proba
endif


Što se tiče uključenja LED, maltene bih mogao da se opkladim da kada bi zamenio mesta pinovima u programu, da bi dobio obrnutu situaciju, da ti RB0 blinka, a RB1 ostaje isključen, tj. kada bi napisao ovako:

Code:

portb.1 = 1
portb.0 = 0
pause 50
portb.1 = 0
portb.0 = 1
pause 50


Ali nema potrebe da eksperimentišeš sa time, a da ne bih ponovo sve objašnjavao pročitaj ovaj post, velike su šanse da je to problem mada LED ne opterećuje izlazni stepen toliko (valjda si stavio otpornik na svaki LED?):
http://www.elitesecurity.org/p2307376

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
79.101.76.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 11:17 - pre 174 meseci
U pravu si cim zamenim mesta u programu dodje do obrnutog stanja ,a sto se tice pinova(portova) oni preko otpornika idu na tranzistore pa tek posle pale led diode .Resio sam problem tako sto sam uzeo slobodni pin sa RA porta i radi super ,mada mi odgovara da bude po starom a probao sam sa "@ nop" komandom i nije se nista promenilo:

portb.1 = 1
@ nop
portb.0 = 0
pause 50
portb.1 = 0
@ nop
portb.0 = 1
pause 50

ovako je izgledalo i nista se ne menja,postoji li nacin da se ovo resi .Pic je 16F628
Poz. Sinisa i srecna nova godina i predstojeci praznici

 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 15:25 - pre 174 meseci
Možda si rešio problem, ali ne i misteriju ;). Šalim se, nema ovde misterije - ovo ponašanje sa zamenom mesta i to da radi sa A portom ukazuje da je problem ono što tvrdim. Imaš tu 2 rešenja:
1. da povećaš pauzu, tj. da staviš više NOP-ova (probaj pa javi), ili
2. da koristiš neku promenljivu umesto direktnog pristupa portu pa da prebaciš njeno stanje na B port. Znači, definišeš promenljivu pod nazivom npr. "bport" i sada setuješ i resetuješ njene bitove (bport.0=1 i bport.1=0) i na kraju uradiš "let portb=bport".

Pozdrav, i tebi takodje (kao i svim prisutnim) Srećna Nova Godina i Božićni praznici.
Sinisha
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 17:38 - pre 174 meseci
Setih se, ima i treće rešenje, a to je da odjednom postaviš oba bita: portb=%00000010 ili kako već hoćeš samo moraš da vodiš računa i o ostalim bitovima
B porta koji su ti važni.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 18:44 - pre 174 meseci
Sinisa probao sam sa ova prva dva resenja i nikako da proradi ,probacu sada sa trecim resenjem pa javljam,a ako bih povecavao pauzu to mi ne bi odgovaralo ,a i sta bi se desilo kada bih koristio recimo RB0 i RB2 da preskocim RB1 bih li tako resio ovaj problem .poz
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 19:30 - pre 174 meseci
Drugo rešenje bi moralo da radi jer ne dolazi do problema zbog direktnog menjanja B porta. Moram da priznam da mi nije jasno ... Povećanje NOP-ova ne uzima mnogo vremena jer svaki NOP na 4 MHz traje samo 1 µs. Daj šemu da vidimo kako si ti to sve povezao. A to RB1, 2 ili 3 nema nikakve veze.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 20:55 - pre 174 meseci
U sustini sam pravio ovo ,potpuno ista sema samo su fetovi drugi slabiji i po jedan je ,a ovde su tri i sluze mi za osvetljenje neke eksperimente izvodim.Gde pise faza+ i faza- tu sam doveo signale sa RB porta direktno,i uvek mi jedna led svetli a druga treperi
kao sto smo i pricali mada ih ja prikljucim i na bazu faza(+) ili (-) bc 337 t20 i t30 ista prica i na gejtovima feta i izlazu i sve isto ,ali kada jedan prebacim na RA port onda radi ok.komandu nop sam pisao ovako @ nop jeli je to ispravno.
portb.1 = 1
@ nop
portb.0 = 0
pause 50
portb.1 = 0
@ nop
portb.0 = 1
pause 50
Prikačeni fajlovi
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 21:03 - pre 174 meseci
Gledajuci sada ovu semu mislim da sam z..ebo stvar zato sto sam preopteretio portove tako sto sam baze vezao direktno na njih pa tako prvi port koji se aktivira blokira drugi kao sto si objasnio ,siguran sam u to prepravljam semu(ubacujem otpornik) pa javljam .Kakav propust covece kada zuris, a tek sada sam ga uocio.poz
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno06.01.2010. u 22:24 - pre 174 meseci
Zato sam ti i tražio šemu KAKO SI POVEZAO, a ne PO KOJOJ SI GLEDAO. Ako nemaš bazne otpornike, to je ozbiljan propust jer tako na pinu nikad nemaš napon veći od 0,7V i opteretiš ga maximalno.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno16.01.2010. u 19:22 - pre 173 meseci
Stavio sam bazne otpornike i sada radi perfektno .Moja greska nisam stavio otpornike i opteretio portb max.
Imam jos jedno pitanje da mi se malo bolje razjasni mada shvatam sustinu ali opet mi nije bas sve bistro ,primer:

u pitanju je PIC 12f675
rezultat VAR WORD
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 -ovo mi je u potpunosti jasno iz datasheeta i vec mi je objasnjeno

ADCON0 = %10000001 ' Konfigurisi A/D Modul:' Desno poravnanje, koristi Vref pin, na kanalu 0 i ovo razumem takodje iz datasheet-a


Pocetak:

Petlja:
ADCON0.1 = 1 ;'Start konverzije -ovo mi nije najjasnije zasto ADCON0.1 sta mu to odredjuje zasto nije samo ADCON0=1 nego i .1 koliko sam ja shvatio to je prvi bit i ima znacenje iz tabele datasheet-a ADCON0
"1 = A/D conversion cycle in progress. Setting this bit starts an A/D conversion cycle."
This bit is automatically cleared by hardware when the A/D conversion has completed

notdone:
IF ADCON0.1 = 1 Then
GOTO notdone 'Ceka low na 1-bitu na ADCON0 -i ovo mi nije jasno kako ceka low prvom bit sta mu to znaci ,trebao bih malo objasnjenje za to recimo sta je low a sta high bit recimo koliko shvatam na ulaznom portu GPPIO.0, kada na njega dolazi napon sa razdelnika
Endif

rezultat.highbyte = ADRESH ' premsta HIGH byte rezultata u temp ;
rezultat.lowbyte = ADRESL ' premesta LOW byte rezultata u temp; i ovo mi nije jasno odakle su ti dobijeni rezultati jer ako su rezultati znaci mere se od negde -kako i gde kada


if temp > 500 then ; definisem sta hocu
Znaci nemogu ukapirati ciklus koji se ovde odvija za ovo sto sam napisao pa bih molio objasnjenje da bih lakse naucio ,ukapirao


 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.132.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno16.01.2010. u 20:08 - pre 173 meseci
Jednostavno su konstruktori tako napravili da se AD konverzija "uključi" (aktivira, startuje) tako što setuješ taj bit; on je setovan sve dok traje konverzija, a kada se završi sam PIC ga resetuje i zato se nakon setovanja nadzire taj bit i čeka da se vrati na 0 što je znak da je AD konverzija gotova i da je rezultat smešten u ADRESH i ADRESL (to ADRES nije od adrese već od "A/D RESult", a H i L su viši i niži bajt rezultata, "High" i "Low"). A rezultat sam PIC smešta u te registre, ti nemaš ništa sa tim sem da ih pročitaš kada je konverzija završena.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno16.01.2010. u 21:01 - pre 173 meseci
'Ceka low na 1-bitu na ADCON0 evo ovo interesuje ,kada se javlja taj low bit i kako ,a kada je high bit.Ovo me ineresuje konkretno iz seme ako mi mozes objasniti .poz
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.132.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno16.01.2010. u 22:27 - pre 173 meseci
Ne znam šta ti nije jasno, sve sam ti napisao, pročitaj još jednom pažljivo, a pogledaj i original dokumentaciju. Zaista ne razumem kako drugačije da ti objasnim i šta ti tačno nije razumljivo. Nema nikakve veze sa shemom, koju god da upotrebiš AD konvertor radi uvek na istom principu.

Pozdrav.
Sinisha

 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno17.01.2010. u 11:23 - pre 173 meseci
Znaci to je bukvalno ovo sto pise u datasheet-u

bit 1 GO/DONE: A/D Conversion Status bit:
1 = A/D conversion cycle in progress. Setting this bit starts an A/D conversion cycle.
This bit is automatically cleared by hardware when the A/D conversion has completed.
0 = A/D conversion completed/not in progres


jer je tako setovano u programu ADCON0.1 = 1 znaci high bit '1' je sve dok sam PIC ne odradi proces u sebi to jest ocitavanje i ne setuje sam low '0' i tek tada smesta rezultate u adres i krece program sa izvrsavanjem dalje i tako u krug.Ovako sam ja shvatio.Poz Sinisa i hvala sto se trudis da mi objasnis
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.132.*



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno17.01.2010. u 15:39 - pre 173 meseci
Da, tako je, samo što program može da ide dalje ako ima potrebe, nije obavezno da čeka u petlji da ADCON0.1 dodje na nulu. U tom slučaju program ode uradi nešto što treba i povremeno proveri da li je konverzija gotova, tj. da li se ADCON0.1 vratio na nulu. Medjutim, sama konverzija traje relativno kratko pa može i da sačeka malo. A rezultat konverzije se prvo smešta u ADRESH i ADRESL pa se tek onda resetuje ADCON0.1.

Pozdrav.
Sinisha
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno17.01.2010. u 20:05 - pre 173 meseci
A mozes li mi objasniti zasto postoje ADRESH i ADRESL ,sta se kad meri i upisuje u ove ADRES.Recimo kada je LOW to je '0' sta on tu meri ili isto HIGH .Cemu sluze i mogu li se ti rezultati meriti i upisivati u razlicite promenjive koje se definisu .
Recimo 12f675 je 10bit a/d i ima rezoluciju 1024 stanja za recimo napon koji merim, e sada od tog napona kada je bit
BIT HIGH on meri trenutno stanje i ispisuje u ADRESH ali kada je BIT LOW sta tu ima da se meri to je '0' i zasto uopste postoji ADRESL .poz

[Ovu poruku je menjao Darko_zed dana 17.01.2010. u 21:16 GMT+1]
 
Odgovor na temu

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

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

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

Postavi temu Odgovori

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