skraceni kurs ucenja picbasica

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Za 24c64 ti treba word, a za 24c0x ide byte za adresu.
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: skraceni kurs ucenja picbasica

Post by sindja1204 »

Uzeo sam novi eeprom 24C04 i uspeo nekako da na portb. dobijem binarni ispis od 0-255. Skidanjem eeproma prestaje ispis na portb (sto ranije nije bio slucaj).Pedja, na tvoj kod sam dodao jes i instrukcije :
Adr=i+1
if adres>255 then i=0 iza naredbe za citanje i2cread sda,scl,$ao,[portb]

Code: Select all

SYMBOL SDA=portc.4
SYMBOL SCL= portc.3
DEFINE I2C_SDA portc.4
DEFINE I2C_SCL portc.3
trisb=$00
portb=0
i var byte
Adr var byte
for i=0 to 255  
adr=i
i2cwrite sda,scl,$a0,adr,[i]
pause 10
next i
for i=0 to 255

i2cread sda,scl,$a0,adr,[portb]
pause 1000
adr=i+1
if i>255 then i=0

next i 
S obzirom da program prestaje sa radom kada se izvadi eeprom , nadam se da je sad sve u redu. Da li se i sad promenljiva salje direktno sa brojaca (program se stopira vadjenjem eproma) na portb?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

To sto si dodao adr nmista ne pomaze...
Isto je adr ili i.
Nije ti radilo sa 24c64 jer si i morao definisati kao word.
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: skraceni kurs ucenja picbasica

Post by sindja1204 »

24C64 sam najverovatnije sprzio posto nije radio ni sa word ni sa byte. Medjutim imao sam nov 24CO4. po tablici je on byte, ali nije ni on funkcionisao dok nisam ubacio u program, Adr=i+1 Tek je onda poceo da ispisuje na portu b binarni zapis, i prekidao je kad izvadim eeprom iz podnozja. Sta se ustvari desava, nemam pojma. Jedino jos jednom da probam sa novim 24C64. Jos vise me zbunjuje to sto ni program ni el. shema nisu komplikovani a ipak nesto ne funkcionise :cry: Probao sam i varijantu Adr=Adr+1, ali u tom slucaju izmedju svakog binarnog ispisa od 1-255 upali ceo port b. :?: :!:
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Uh, reinstaliraj kompajler.
Ne sme to tako da divlja...
Meni je jednom bilo do kompajlera...
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Evo jedan mali update.
http://www.elektronika.ba/forum/viewtop ... 9&start=34" onclick="window.open(this.href);return false;
Igore, hvala jos jednom.
User avatar
***$*K*#*R*P*!*#*N***
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 240
Joined: 12-11-2006, 18:30
Location: Beograd
Contact:

Re: skraceni kurs ucenja picbasica

Post by ***$*K*#*R*P*!*#*N*** »

mozda je glupo pitanje al sta da se radi
@pedja089 ovo je tvoj program za prikazivanje smeska za propeller clock...jel moze malo objesnjenje ovog programa...interesuje me kako da znam koje vrednosti da upisujem za nesto drugo... :?

Code: Select all

trisb=0
trisa=%00000111
porta=0
portb=0
pocetak:
if porta.1=1 then goto pocetak
pause 7
porta=8
portb=192
pause 2
portb=0
pause 25
portb=192
pause 2
portb=0
pause 30
portb=32
pause 20
portb=0
goto pocetak
http://belgradenight.info" onclick="window.open(this.href);return false;
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Pa na osnovu seme. Samo palis ili gasis ledice.
Mozes pisati u binarnom obliku, ako ti je lakse.
Meni je bilo ovako lakse jer sam napravio program za ispisivanje vrednosti za nacrtan oblik. A gde mi je nemam pojma...
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: skraceni kurs ucenja picbasica

Post by VFDisplay »

može mala pomoć?
dakle pošto sam pokušao upisivati podatke u I2C 24c04 memoriju odlučio sam pokušati kontrolirati tda7313 međutim neuspiješno...uopće se ništa ne čuje na izlazu!!!
pokušao sam sve!
evo kod pa recite šta nevalja:

Code: Select all

SYMBOL SDA=porta.4
SYMBOL SCL= portb.6
DEFINE I2C_SDA PORTA.4 
DEFINE I2C_SCL PORTB.6
i var byte
Adr var byte
start:
for i = 1 to 255
i2cwrite sda,scl,adr,%0100,[%0001] 'odabir ulaznog kanala
next i
pause 50
for i = 1 to 255
i2cwrite sda,scl,adr,%0010,[%0001] 'odabir glasnoće
next i
pause 1000
goto start
pull up otpornici su dodani
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: skraceni kurs ucenja picbasica

Post by VFDisplay »

pobježe mi edit!
da li može biti problem zato što ja nisam odabrao (bolje rečeno niti spomenuo) u programu balans,baseve i visoke tonove?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Sta je ovo %0100??
Bajt ima 8 bitova, zato se to mora postovati.
Koja je poenta da setujes glasnocu 250 puta??
Da bi pustio zvuk na odredjenu adresu moras poslati neki broj. Ja bi slao i iz petlje na tu neku adresu...
Ove lepo izbrisi i vise nego dovoljno je setovati samo 1 neki parametar. A dali se sve mora setovati, procitaj u datasheetu.
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: skraceni kurs ucenja picbasica

Post by VFDisplay »

koja je tebi poanta da u eeprom upisujes 255 puta?
Sto se tiče bitova ako je 8bita šta je to adresa ili podatak?
Ako je podatak koja je adresa?
Molim te ako ti nije problem otvori datasheet pa vidi kako mu poslati naredbu.
Nemoj misliti da sam lijen nego se ti bolje razumiješ u to pa da mi pokažeš.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Pa ja upisujem na razlicite lokacije, pa onda u eepromu imas brojeve od 0-255. Ali upisati jednu te istu stvar 255 je glupo. Sve ima 8bita, ako drugacije ne pise.
Postavi jednostavno sve parametre i vidi radi li. Naravno isto je pitanje jeli je ulazni signal dovoljne jacine itd...
EDIT:
Previse tu ima da bih sad lupao glavu.
Prvo moras podesiti selektore ulaza i volume, pa vol+loudnes, bas, treble, mute itd...
User avatar
***$*K*#*R*P*!*#*N***
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 240
Joined: 12-11-2006, 18:30
Location: Beograd
Contact:

Re: skraceni kurs ucenja picbasica

Post by ***$*K*#*R*P*!*#*N*** »

jel bi mogo da se spoji motoric iz flopi diska na 16f84 i jel moze neki primer ? :?
http://belgradenight.info" onclick="window.open(this.href);return false;
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Hm, ne znam na koji od ona 2 mislis. Ako je onaj sto okrece flopi, tu nema sta, zajednicku na + i tranzistore non vezes izmedju kalemova i mase. a kontroslises sa HIGH i LOW, a na milan.milanovic.org/skola, imas o motorima, tako da mozes videti za koji mod odabrati, korak, polukorak itd. A ako mislis na onaj mali, za njega trebaju dva H bridge mosta, pa je komplikovano...
Ali i tu je poenta pustis struju u jednom smeru, pa okrenes, pa onda drugi kalem isto tako.
User avatar
***$*K*#*R*P*!*#*N***
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 240
Joined: 12-11-2006, 18:30
Location: Beograd
Contact:

Re: skraceni kurs ucenja picbasica

Post by ***$*K*#*R*P*!*#*N*** »

da da na mali mislim...

a za ovako nesto http://www.mikroprinc.com/proizvodi.asp ... &pid=17012" onclick="window.open(this.href);return false;
jel isto komplikovano sa 16f84 ili?
http://belgradenight.info" onclick="window.open(this.href);return false;
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Nigde ne pise koji je, unipolarni ili bipolarni. Unipolarni su najlaksi za kontrolu. Jer su kalemovi vezani u zvezdu, pa je dovoljno zvezdiste zakaciti na + i upravljati tranzistorima kako sam gore rekao. A valjda si nasao na sajtu...
gkrstini
Posts: 13
Joined: 25-12-2009, 15:43

Re:

Post by gkrstini »

pozdrav...
počeo sam proučavati ovaj tvoj tećaj za programiranje PIC-eva, no još sam početnik, zanimao sam se za brojać okretaja u minuti, ovdje je napisan program za brojać okretaja u sekundi, pa bih htjeo da te pitam šta bi trebalo izmjeniti da bi brojao u jednoj minuti?
vidim ovdje broj 1000 (COUNT PORTA.0,1000,BROJ), da nije jednostavno promjeniti u 60000?, al onda mu treba minuta da izbroji ili kako?
pročitao sam cjeli kurs i kolko znam nema napisanog odgovora, bio je jedan član isto upitao za to, al izgleda da je odgovor dobio preko privatne poruke...

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
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Upravo tako, pic nece nista drugo raditi sem sto ce brojati tu celu minutu.
Mada postoji nekoliko resenja. Jedno je da nadjes neku sredinu izmedju duzine merenja, i preciznosti. Npr ako meris 10S, onda ti je dovoljno pomnoziti broj sa 6 i imaces broj obrtaja u minuti, ili meris 20S, pa mnozis broj sa 3 pa prikazujes. Drugi nacin je da iskoristis neki od brojaca npr TMR0 i da ga ukljucis bez preskalera, i setujes ga na 0, u programu napravis neko zadrzavanje od minute, i u toku tog zadrzavanja mozes prikazivati svasta nesto na displeju, i zatim ocitas dokle je stigao TMR0. Ali sve se svodi da bi imao potpuno tacno merenje, moras meriti najmanje 1 min, a sto duze to bolje.
gkrstini
Posts: 13
Joined: 25-12-2009, 15:43

Re: skraceni kurs ucenja picbasica

Post by gkrstini »

čini mi se jednostavnije rješenje jednostavno smanjiti sekunde brojanja, i dati PIC-u da pomnoži, ako možeš reći gdje mogu da stavim to množenje?
i kako?
jednostavnim "* 60"?

Code: Select all

POCETAK:
COUNT PORTA.0,1000,BROJ 
BROJ1 = BROJ DIG 3 
BROJ2 = BROJ DIG 2'
BROJ3 = BROJ DIG 1
BROJ4 = BROJ DIG 0
COUNT PORTA.0,1000 * 60,BROJ
ili negdje drugdje?
BROJ1 = BROJ * 60 DIG 3 ? :?

ili da ubacim da je neki 3. izraz = BROJ * 60 i umjesto broja ubacim te izraze?
naprimjer REZULTAT?

Code: Select all

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

    POCETAK:
    COUNT PORTA.0, 1000, BROJ
    REZULTAT = BROJ * 60
    BROJ1 = REZULTAT DIG 3 
    BROJ2 = REZULTAT DIG 2
    BROJ3 = REZULTAT DIG 1
    BROJ4 = REZULTAT DIG 0

    FOR I = 1 TO 100  

    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
eto nadam se da te ne dosađujem sa pitanjima, nisam našao na odgovor na forumu, sad sam malo prelistao i ne nalazim odgovor, nemoj mi zamjerit ako si to raćunanje već objasnio...
Post Reply