skraceni kurs ucenja picbasica

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
yt1nvs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 30-03-2009, 16:54

Re: skraceni kurs ucenja picbasica

Post by yt1nvs »

Koji display?Mislim da si to pitao i na ES forumu.
s4s4
Posts: 1
Joined: 07-10-2013, 14:39

Re: skraceni kurs ucenja picbasica

Post by s4s4 »

Jel moze neko dici medicinu za PBP3 bar na 24 sata.
Hvala. Bok.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: skraceni kurs ucenja picbasica

Post by WhiteHead »

Dali je moguće na neki način koristiti više puta komandu "SYMBOL" za istu promjenjivu ?
Konkretno, ako na PIC-u imam 3 temoeraturna senzora (18b20) na tri različita pina na portu B i želim koristiti samo jedan potprogram za čitanje temperatura svih senzora...nešto kao:

Code: Select all

SYMBOL DQ=PORTB.0
GOSUB MjerenjeT
SYMBOL DQ=portb.1
GOSUB MjerenjeT
....itd
PBP ovo ne dopušta, postoji li neki drugi način ?
Ako kaniš pobijediti, ne smiješ izgubiti
alarmi ns
Penjem se :)
Penjem se :)
Posts: 54
Joined: 29-06-2013, 20:13

Re: skraceni kurs ucenja picbasica

Post by alarmi ns »

pozdrav svima dali mi neko moze dati neki primer sa naradbom pulsin
napisem

pulsin a.3 ,1,a

da mi izmeri sirinu visokog nivoa na pinu a3 i da rezultat smesti u promenljivu a
kad dam da ispise na displeju na displeju se uvek pojavi 0 radim sa picem 16f877/20mhz dali uz ovu komandu ide jos nesto?naravno definisem a kao word i a.3 kao ulazni pin
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Pulsein računa širinu impulsa na osnovu oscilatora u mikrokontroleru, pa je tako za 20MHz kristal, najmanji impuls 2us. Kako kontroler ne bi stajao u beskonačnoj petlji i čekao impuls, funkcija pulsein završava čekanje nakon njenog pozivanja, kad prođe 65535 impulsa, u tvom slučaju nakon 0,13107 sekundi, s rezultatom 0. Dakle, nezgodno je radit s impulsima koji se ne ponavljaju tako često, jer ćeš imat rezultat 0. Za takav slučaj bi trebao imat kontrolu kad taj pin skoči na H nivo, i onda odradit pulsein, s tim da ti u tom slučaju test pina sigurno uzima određeni broj ciklusa, i to ćeš morat uzet u obzir prilikom kalkulacije.

Dakle, taj impuls kojeg mjeriš bi se trebao pojavljivat ciklički, najmanje svakih 131ms.
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

Bok !
Heh nije me bilo duze vrijeme u programerskim vodama :)
Uglavnom, zelio bih se malo vratit u programiranje pa sam si planirao odraditi kontrolu volumena, basa i sl. preko nekog mikrokontrolera . Posto imam 16F628 odlucio sam se za njega .
U planu je TDA7313 ili jedan slican cipek pomocu kojeg bi vrsio kontrolu .
Veci dio koda i nije problem , jedino me malo komunikacija sa TDA-om zeza .
Plan je komunicirat preko I2C komunikacije . Medutim ne razumijem I2Cwrite naredbu .
Razumijem definiranje pinova data i clock no ne znam kako poslati neku binearnu vrijednost.
Npr. adresa cipa je 88 heksadekadski , a da bi se volumen pojacao do kraja potrebno je :
1.) Poslati tzv. start signal, ok to nije problem ( valjda... )
2.) Pozvati adresu uredaja s kojim "komuniciramo" , ok to se vec u I2Cwrite naredbi radi ( to razumijem )
3.) U datasheetu od TDA-a stoji da bi bilo pozeljno odraditi tzv. "acknowledge clock pulse" , i to otom potom
4.) Poslati "komandu" koja govori sto TDA-a zapravo treba odraditi. Npr. da se pojaca volumen na maks. potrebno je poslje gore navedenog ( 1- 3 ) poslati binearnu kombinaciju 00111111 .
5.) ponavljanje tocke 3 i zatim prekidni impuls tzv . stop

Moje pitanje kako bi trebala izgledati naredba I2Cwrite ?

Kako mu sad reci da posalje binearnu kombinaciju 00111111 , naravno ako treba bez problema ju ja pretvorim u dekadsku ili heksadekadsku vrijednost.
Ako sam dobro shvatio ovako bi trebalo izgledati dio naredbe .

I2Cwrite data_pin, clock_pin,adresa_tda-a, ?
? - sto dalje ?

Samo da napomenem nemam jos TDA da probam kod tako da je ovo vise informativo .

Unaprijed se zahvaljuem na trudu i pomoci .

Edit:
Vidio sam da je jos jedan clan pokusao izraditi takvu kontrolu no nisam uspio vidjeti je li je uspio napraviti kontrolu
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

I dalje ne mogu da verujem koliko ljudi brka decimalni hexadecimalni i binarni zapis...
To je sve isto sranje, i samo je razlika kako ces ti to videti, u glavi i u procesoru to je ista vrednost.
Sto se tice glasnoce imaces je u jednom bajtu i vrednost tog bajta ide od 0 do 00111111 ti 0 do 63.
kako god pomocu nekih dugmadi ili cega vec ces tu vrednost uvecavati i smanjivati...

Recimo ta komanda bi trebala ovako da izgleda:
I2CWRITE DataPin, ClockPin, Control, {Address,}[Value{,Value...}]
Kao sto vidis potreban ti je ovaj kontrolni bajt ili adresa chipa.
http://www.promelec.ru/pdf/tda7313.pdf
Malo bolje pogledas pa nadjes kontrolni bajt bi trebao biti $88=%10001000=136.
U ovom slucaju adresa ne postoji, nego se salju samo podatci, barem tako pise u datasheetu.
Pa ce onda komanda za tebe da bude
I2CWRITE DataPin, ClockPin, Control, [Value{,Value...}]
E sad, koji parametar regulises, odredjuju biti u bajtovima koje saljes.
Za volume prva 2 bita su 0, znaci ako saljes vrednost 0-63, podesavas volume.
Ako su prva 3 bita 010 komanda je upucena multiplekseru itd, prouci tablicu malo...
Znaci tvoja svaka komanda izgleda ovako:
I2CWRITE DataPin, ClockPin, Control, [Value]
Gde je Value definisan kao bajt, i samo u zavisnosti od onoga sta stavis u bajt chip ce to odraditi.
Isto tako ne moras slati samo 1 vrednost nego mozes vise u uzastopnim bajtovima, i onda ce raditi sta je definisano u svakom bajtu...
Ovo je iz datasheeta koliko sam video. Nisam koristio...
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

Prije svega hvala !
Nisam se nadao ovako brzom odgovoru :)
Razumijem da je heksadekadski, dekadski, binearni, oktalni sustav isto pakovanje . Napomeno sam da nije problem pretvorit te vrijednosti jer sam mislio da ce mozda zbog lakseg prijenosa ( da naredba tako zahtijeva ) biti potrebno postavit tu vrijednost u neki drugi oblik. Ma skroz sam se bio izgubio pa sam napisao nepotrebno i nesmisleno, a vidim da me i sad nece :lol: ...
Oprosti ako te je to naljutilo :roll: .
Hvala sto si objasnio kao bi trebala izgledati konacna naredba .
Jos jednom hvala na brzom odgovoru .
Vjerujem da ce biti jos pitanja kad krenem pisati kod , ali otom potom :)
Lp
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Nisam se naljutio. Otkud bi...
Naredba zahteva da value bude byte i to je to...
Sta ces strpati u njega zavisi od cega oces da menjas u chipu...
uros2002
Posts: 10
Joined: 05-02-2012, 16:13

Re: skraceni kurs ucenja picbasica

Post by uros2002 »

Pozdrav svima.

Planiram da napravim ovakav brojac obrataja sa cetiri cifre za hoby strug za drvo koji sam napravio.
pedja089 wrote: ................
.................
..................
sema:
http://www.elektronika.ba/forum/uploadz ... rtomer.GIF

ako je sve jasno moglo bi se reci da smo zavrsili sa sedmosegmentnim displejima....
sada bi mogli malo preci na lcd displej.
za pocetak mozete koristiti i proteus.
Na drugoj stranici ove teme u zadnjem postu sam pronasao semu koju bih mogao da uradim posto sam totalni pocetnik u samogradnji elektronike i uopsteno u elektronici potrebna mi je vasa pomoc.

1 - Na semi nema oznake NPN tranzistora pa neznam koji da kupim?
2 - Koja dioda ili kako se vec pravilno zove staviti da uzima (meri) broj obrtaja sa osovine (vratila struga) nije napisano na semi?
3 - Da li neko moze da mi posalje kod za PCI 16F84A posto se nerazumem nista u kodiranje a primetio sam da je kod podeljen na nekoliko delova u pomenutim postovima. (jedan deo ispisuje broj na displeju, drugi deo koda odredjuje koji displej da prikaze broj, treci deo preracunava ocitane vrednosti senzora ....) mozda ima jos ali sam ovo primetio.
4 - Da li moze PCI da se kodira preko (ic prog 106C) koji sam napravio prema semi koju sam nasao na forumu i linka za download programa?

Ako moze kompletan kod neko da sastavi?


Hvala unapred
Dejan https://www.youtube.com/channel/UCIMUvF ... NBlVy7CcvA
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

1. Bilo koji signalni da moz da izdrzi struju displeja. Skoro svaki moze, BC547 itd...
2. Kako je u pitanju strug, tu ima prasine, zaobici optiku, verovatno najbolje resenje halov senzor i magnet na osovini.
4. Ne znam tacno koja je sema u pitanju, skoro svaki programator moze isprogramirati F84...
uros2002
Posts: 10
Joined: 05-02-2012, 16:13

Re: skraceni kurs ucenja picbasica

Post by uros2002 »

Hvala na odgovoru.

Sto se tice Halovog senzora i magneta to mi odgovara posto magnet mogu da ugradim u aluminijumsku remenicu za kais a halov senzor na kuciste.

Moze li neko da mi kaze dali je ovo kompletan kod koji sam nasaona ovom forumu.

Code: Select all

TRISB=0
TRISA=255
BROJ VAR WORD
BROJ1 VAR BYTE  
BROJ2 VAR BYTE
BROJ3 VAR BYTE
BROJ4 VAR BYTE
I VAR BYTE

POCETAK:
COUNT PORTA.0,1000,BROJ ' broji impulse na pinu RA0, u periodu od 1S i rezultat   smesta u "BROJ"
BROJ1 = BROJ DIG 3 'izdvajamo hiljde
BROJ2 = BROJ DIG 2' izdvajamo stotine
BROJ3 = BROJ DIG 1'desetice
BROJ4 = BROJ DIG 0'jedinice
FOR I = 1 TO 100  ' u ovom slucaju stavili smo da se ispis na displeju ponovi 100 puta, sto znaci da ce vreme prikazivanja broja na displeju biti oko 2 sekunde
PORTB=BROJ1
HIGH PORTB.7
PAUSE 5
LOW PORTB.7

PORTB=BROJ2
HIGH PORTB.6
PAUSE 5
LOW PORTB.6  

PORTB=BROJ3
HIGH PORTB.5
PAUSE 5
LOW PORTB.5 

PORTB=BROJ4
HIGH PORTB.4
PAUSE 5
LOW PORTB.4 
NEXT I 
GOTO POCETAK
Trebalo bi da mi meri obrtaje u minutu.
Onda bih morao da izmenim ovaj red

Code: Select all

COUNT PORTA.0,1000,BROJ ' broji impulse na pinu RA0, u periodu od 1S i rezultat   smesta u "BROJ"
u

Code: Select all

COUNT PORTA.0,60000,BROJ ' broji impulse na pinu RA0, u periodu od 1S i rezultat   smesta u "BROJ"
Da li sam ukapirao dobro ovo sa brojanjem impulsa.
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Dobro si to "ukapirao", samo ima jednu manu, trebat ćeš čekat 1 minut dok opet ne dobiješ slijedeći prikaz :). Bolje da liniju ostaviš kakva je u originalu (čitanje svake sekunde) i pomnožiš rezultat sa 60.
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
yt1nvs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 30-03-2009, 16:54

Re: skraceni kurs ucenja picbasica

Post by yt1nvs »

Bas kako rece Kukinjos ,ako znas obrtaje u sec. onda racunas za 1min,u principu to se radi tako.Ako bi ti program cekao tu 1min bude to lose resenje ovako mozes jos nesto raditi.
uros2002
Posts: 10
Joined: 05-02-2012, 16:13

Re: skraceni kurs ucenja picbasica

Post by uros2002 »

Ok
Hvala

Sad jos jedno pitanje posto sam totalni pocetnik.
Da ostavim u orginalnom formatu kod. Da li u kod treba da dodam jos jednu liniju koja ce mi racunati recimo ovako da promeni ovaj red

Code: Select all

COUNT PORTA.0,1000,BROJ ' broji impulse na pinu RA0, u periodu od 1S i rezultat   smesta u "BROJ"
u recimo BROJS to bi izgledalo ovako

Code: Select all

COUNT PORTA.0,1000,BROJS ' broji impulse na pinu RA0, u periodu od 1S i rezultat   smesta u "BROJS"
Zatim dodam jos jedan red u kodu gde ce mi racunati

Code: Select all

BROJ = BROJS * 60
Mislim da nije bas ovako prosto kako sam ja zamislio.

Ako moze mala pomoc oko ovoga.

Hvala unapred
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Misliš da bI bilo prekomplicirano dodat ovo?

Code: Select all

COUNT PORTA.0,1000,BROJ ' broji impulse na pinu RA0, u periodu od 1S i rezultat   smesta u "BROJ"
BROJ = BROJ * 60
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
uros2002
Posts: 10
Joined: 05-02-2012, 16:13

Re: skraceni kurs ucenja picbasica

Post by uros2002 »

Hvala na brzom odgovoru.

Nisam mislio da je ovo komplikovano dodati.
Mislio sam da BROJ koji racuna na pinu RA0 moram da preimenujem i tek onda kao sto sam napisao pomnozim sa 60.

U svakom slucaju hvala na brzom odgovoru.
Prema semi sam popisao sve komponente potrebne za izradu ovog uredjaj.
Samo neznam koji Holov senzor koja je oznaka

Da li u ovom spisku ima jos neke oznake koje treba da znam kada budem kupovao delove?
Na sajtu radio kluba NT sam nasao katalog i vidim da ima oznake "kondezator keramicki 22p,100v , RM5.08"
Moze li mi neko napisati tacne nazive (oznake) delova koje treba da kupim
  • Spisak delova

    LED displej 7-segmenata - 4kom
    Otpornik 470R - 7kom
    Otpornik 1k - 5kom
    Otpornik 10k - 1kom
    Otpornik 100k - 1kom
    Diode 1N4001 - 4kom
    78L05 VOLTREG - 1kom
    PCI 16F84A - 1kom
    SN74LS47 DECODER - 1kom
    kondezator 22p - 2kom
    kondezator 100n - 4kom
    kondezator 10uF - 1kom
    kondezator 1000uF - 1kom
    Kristal 4MHz - 1kom

    Holov senzor - 1kom
evo spiska koji sam napravio u RK NT
Image
Evo i seme
Image

Moze li neko da dopuni spisak?

Unapred Hvala
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: skraceni kurs ucenja picbasica

Post by niho »

Displayi trebaju biti sa zajedničkom anodom. Što se tiče "hall senzora" trebaju ti obična IR LEd i fototranzistor, možeš ih izvaditi iz starog miša za računar. Kondenzatori su blok (klasika 50V) a ova dva ektrolitska su 16V. Svi otpornici su bilo kakvi, preporučujem ako već kupuješ da budu grafitni četvrtvatni sa tolerancijom od 10% (msm da su najjeftiniji :) )Trebaće ti još transformator, ako radiš po šemi: 220V/9V 5W, i osigurač 250V/63mA sa nosačem. LED i Fototranzistor postaviš na blok motora a remenicu oboji u crno i samo na jednom mjestu ostavi bijelu površinu ili zalijepi parče staniola osim ako baš hoćeš raditi sa magnetnim senzorom.
uros2002
Posts: 10
Joined: 05-02-2012, 16:13

Re: skraceni kurs ucenja picbasica

Post by uros2002 »

Hvala na odgovoru.

Radi mesta ugradnje Strug za obradu drveta nebih stavljao IR diodu i fototranzistor kako je rekao
pedja089 wrote:1. Bilo koji signalni da moz da izdrzi struju displeja. Skoro svaki moze, BC547 itd...
2. Kako je u pitanju strug, tu ima prasine, zaobici optiku, verovatno najbolje resenje halov senzor i magnet na osovini.
4. Ne znam tacno koja je sema u pitanju, skoro svaki programator moze isprogramirati F84...
Da li LED displej mora da bude sa zajednickom Anodom. Posto sam nasao sa zajednickom Katodom.
Mislim da to zavisi samo od pinova 3 i 8 na koji cu povezati displej.

Posto mi je ovo prvi put da radim nesto oko elektronike nadam se da sam dobro razumeo.
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: skraceni kurs ucenja picbasica

Post by niho »

Pošto si početnik da, inače bi morao mijenjati i šemu i kod, što bi bio, pretpostavljam, krupan zalogaj ( ali ne smoki :) )
Post Reply