skraceni kurs ucenja picbasica
Moderators: pedja089, stojke369, [eDo], trax
Re: skraceni kurs ucenja picbasica
sitnica...
- sasa45
- Odlično uznapredovao
- Posts: 518
- Joined: 19-01-2007, 07:42
- Location: Subotica - Srbija
- Contact:
Re: skraceni kurs ucenja picbasica
Da da pedja opet ja
nece moj eeprom pa nece....
na pocetku programa imam ovaj deo koda
znam da moze i sa for petljom ali poludeo sam pa sam ispisao ovako
onda imam deo koda u kojem vrsim podesavanja ovih promenljivih i deo koda koji radi u zavisnosti od ovih promenljivi....i na kraju kad zavrsim sa podesavanjima kliknem taster i ulecem u ovaj kod
ajde ok je prvi put nisu brojevi koji mi trebaju...ali onda ih ja podesim i onda ih ovaj zadnji deo koda ubaci to u eeprom ali nevalja...ugasim cip i upalim ga ponovo a promenljive mi nisu te koje su bile kad sam ih podesio....
pomagaj ne znam gde gresim...
nece moj eeprom pa nece....
na pocetku programa imam ovaj deo koda
Code: Select all
glup:
pause 50
read 1,pauzaa.highbyte[1]
pause 50
read 2,pauzaa.lowbyte[1]
pause 50
read 3,pauzaa.highbyte[2]
pause 50
read 4,pauzaa.lowbyte[2]
pause 50
read 5,pauzaa.highbyte[3]
pause 50
read 6,pauzaa.lowbyte[3]
pause 50
read 7,cikl.highbyte[1]
pause 50
read 8,cikl.lowbyte[1]
pause 50
read 9,cikl.highbyte[2]
pause 50
read 10,cikl.lowbyte[2]
pause 50
read 11,cikl.highbyte[3]
pause 50
read 12,cikl.lowbyte[3]
pause 50
onda imam deo koda u kojem vrsim podesavanja ovih promenljivih i deo koda koji radi u zavisnosti od ovih promenljivi....i na kraju kad zavrsim sa podesavanjima kliknem taster i ulecem u ovaj kod
Code: Select all
pause 50
write 1,pauzaa.highbyte[1]
pause 50
write 2,pauzaa.lowbyte[1]
pause 50
write 3,pauzaa.highbyte[2]
pause 50
write 4,pauzaa.lowbyte[2]
pause 50
write 5,pauzaa.highbyte[3]
pause 50
write 6,pauzaa.lowbyte[3]
pause 50
write 7,cikl.highbyte[1]
pause 50
write 8,cikl.lowbyte[1]
pause 50
write 9,cikl.highbyte[2]
pause 50
write 10,cikl.lowbyte[2]
pause 50
write 11,cikl.highbyte[3]
pause 50
write 12,cikl.lowbyte[3]
pause 50
ajde ok je prvi put nisu brojevi koji mi trebaju...ali onda ih ja podesim i onda ih ovaj zadnji deo koda ubaci to u eeprom ali nevalja...ugasim cip i upalim ga ponovo a promenljive mi nisu te koje su bile kad sam ih podesio....
pomagaj ne znam gde gresim...
Re: skraceni kurs ucenja picbasica
ajde uzmi i2c i resi stvar. ja sam imao problem kod tog eeprom, pomeri sve za jednu lokaciju, preskoci upis i tako te budalastine...
od tada radim samo sa i2c i nemam nikakvih problema...
od tada radim samo sa i2c i nemam nikakvih problema...
- sasa45
- Odlično uznapredovao
- Posts: 518
- Joined: 19-01-2007, 07:42
- Location: Subotica - Srbija
- Contact:
Re: skraceni kurs ucenja picbasica
evo za sada sam resio problem i ovako...ne treba mi sacuvati mnogo podataka niti ce se ti podaci mnogo menjati....
posto radim sa nizovima i sa word promenljivima...i tu mnogo brlja tj ja ne znam da ga koristim...
razlozio sam ga ja na dve promenljive byte i tako pohranio u eeprom i za sada mi izgleda ok...
nemoj da se smejes ali evo formule kako sam to odradio
word sam razlozio na dva byte ovako
i potom u eeprom ucitao p1a i p1b
a zatim iz eeproma ucitam p1a i p1b i spojim ih u word ovako
i za sada nemam primedbe radi kako treba...
posto radim sa nizovima i sa word promenljivima...i tu mnogo brlja tj ja ne znam da ga koristim...
razlozio sam ga ja na dve promenljive byte i tako pohranio u eeprom i za sada mi izgleda ok...
nemoj da se smejes ali evo formule kako sam to odradio
word sam razlozio na dva byte ovako
Code: Select all
p1a=pauzaa[1]/254
p1b=pauzaa[1]-p1a*254
a zatim iz eeproma ucitam p1a i p1b i spojim ih u word ovako
Code: Select all
pauzaa[1]=p1a*254+p1b
Re: skraceni kurs ucenja picbasica
to je ok. to isto dobijes sa highbyte i lowbite. ti sad racunas vrednost, umesto jednostavno da je procitas iz memorije.
- sasa45
- Odlično uznapredovao
- Posts: 518
- Joined: 19-01-2007, 07:42
- Location: Subotica - Srbija
- Contact:
Re: skraceni kurs ucenja picbasica
sta mogu kad tako jednostavno nece pa moram ovako komplikovano...ocigledno negde gresim i verovatno treba jos nesto odraditi ali sta mogu kad ne znam....a kad mi se malo rascisti guzva sa polom onda cu uzeti pa nauciti i preci na koriscenje i2c...
Re: skraceni kurs ucenja picbasica
ja stvarno ne znam sto tajeeprom na picu nece uvek da radi kako treba.... tako da sad kad mi treba bilo kakva memorija ni ne razmisljam.uvek ubacujem i2c. imas ih raznih kapaciteta. od stotinak bajtova pa navise...
Re: skraceni kurs ucenja picbasica
evo kod ovog tajmera
Code: Select all
trisb=0
trisa=%00011101
portb=0
S VAR WORD
SZ var word
Br0 var byte
Br1 var byte
Br2 var byte
t var byte
C var bit
symbol Rele = porta.1
symbol Pr = porta.4
symbol Start= porta.3
symbol Sttop= porta.2
rele=0
read 0,sz.highbyte
read 1,sz.lowbyte
if sz>999 or sz=0 then sz=220
c=0
Pocetak:
if pr=1 then
if start=0 then c=1
if sttop=0 then c=0
if S>0 and c=1 then
rele = 1
endif
if S=0 or c=0 then
rele =0
c=0
s=sz
endif
if c=1 then
S=S-1
goto disp
endif
goto disp1
'<<PR=0>>---postavljkanje vrednosti---------------------------------------------------------------
else
rele=0
'smanjivanje
if sttop=0 AND S>1 then
S=S-1
goto Disp1
endif
'povecavanje
if start=0 and S <999 then
S=S+1
goto Disp1
ENDIF
sz=s
goto disp1
endif
Disp: 'prikazivanje merene vrednosti i traje 1S
br2=S DIG 2
br1=S dig 1
br0=S dig 0
for t=0 to 99
portb= br2+ 32
pause 3
portb= br1+64
pause 4
portb= br0+ 128
pause 3
next t
goto pocetak
Disp1: 'prikazivanje iz i traje 100mS
br2=S DIG 2
br1=S dig 1
br0=S dig 0
for t=0 to 10
portb= br2+ 32
pause 3
portb= br1+64
pause 4
portb= br0+ 128
pause 3
next t
goto pocetak
end
Re: skraceni kurs ucenja picbasica
E svaka cast, ovo ce dobro doci za prosirenje znanja a i za laksu konstrukciju PCB-a radi mogucnosti izbora pinova na PIC-u (izuzev potb.0 do portb.3)
Hvala
Hvala
Ako kaniš pobijediti, ne smiješ izgubiti
Re: skraceni kurs ucenja picbasica
mogu se prebaciti na a0-a3, a i na b3-b7 uz malo igranja...
Re: skraceni kurs ucenja picbasica
dali neko ima neki primer za pic18f4550 sa koliko trebam da delim ? pošto 18f4550 ima 10 bitni a/d konverterpedja089 wrote:nije 32, nego se deli sa 1024, jer je konverzija 12to bitna.
i promenljiva u kojoj se smesta rezultrtat mora biti word, ona gornja 4 bita su uvek nule.
evo jedan primer ad konverazijeto je samo isecak iz koda...Code: Select all
ADCIN 2, AD_Rez ' Izvrsi konverziju na RA2 i 10 bita rezultata smesti u AD_Rez. Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda Dummy = AD_Rez * 5 * 100 Napon = Div32 1024 'primer 32bitnog deljenja, deli promenljivu Dummy sa brojem iza Div32 Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda Lcdout " Napon:", DEC Napon DIG 2,".", DEC2 Napon, "V" ' Ispisi vrednost na displeju ' rezultat AD konverzije Pause 10000 ' Pauza 10 sec
EDIT: Možda i grešim, možda valja kod...
Re: skraceni kurs ucenja picbasica
uh kako niko nije primetio koju sam glupost napisao...
ono gore je za 10bitni ad konverter. jer je 2^10 =1024...
ono gore je za 10bitni ad konverter. jer je 2^10 =1024...
Re: skraceni kurs ucenja picbasica
sad sam tek skontao...sramota me je
- sasa45
- Odlično uznapredovao
- Posts: 518
- Joined: 19-01-2007, 07:42
- Location: Subotica - Srbija
- Contact:
Re: skraceni kurs ucenja picbasica
pedjaaaaaaaa sta ovaj MicroCode Studio oce da mi kaze sa ovom porukom....
Code: Select all
Warn MASINA~1.asm 779:[102] code crosses boundary @ 800h
Re: skraceni kurs ucenja picbasica
nemam pojma, prvi put vidim...
daj posalji mi kod na pm da vidim u cemu je problem...
daj posalji mi kod na pm da vidim u cemu je problem...
- sasa45
- Odlično uznapredovao
- Posts: 518
- Joined: 19-01-2007, 07:42
- Location: Subotica - Srbija
- Contact:
Re: skraceni kurs ucenja picbasica
kod je malo duzi sad vec ima oko 400 linija pa ne znam koliko ces se snaci u njemu...a i nije neki problem on to upozorenje ispise ali meni cip radi ok tj program u njumu...
Re: skraceni kurs ucenja picbasica
moguce da je do verzije mcs-a, ali ocigledno verzija kompajlera je ok cim ga iskompajlira...
ako hoces posalji samo da vidim zeza li kod mene...
ako hoces posalji samo da vidim zeza li kod mene...
- sasa45
- Odlično uznapredovao
- Posts: 518
- Joined: 19-01-2007, 07:42
- Location: Subotica - Srbija
- Contact:
Re: skraceni kurs ucenja picbasica
piiii hteo sam program prebaciti iz pic16f877 u pic 16f84
buni mi se nesto kao adress limit of 3ffh
koliko sam ja ukapirao presao sam mu memoriju od 1k (3ff)
koliko jedna komanda trosi memorije u cipu...primer koliko jedna if petlja zauzima prostora u cipu...interesuje me da znam otprilike da procenim koliki programi mogu da stanu u 16f84
buni mi se nesto kao adress limit of 3ffh
koliko sam ja ukapirao presao sam mu memoriju od 1k (3ff)
koliko jedna komanda trosi memorije u cipu...primer koliko jedna if petlja zauzima prostora u cipu...interesuje me da znam otprilike da procenim koliki programi mogu da stanu u 16f84
Re: skraceni kurs ucenja picbasica
to zavisi od 100 faktora, to se moze na asemblerskom nivou pricati koliko trosi memorije jedna komanda. ovde nema ptravila...
- sasa45
- Odlično uznapredovao
- Posts: 518
- Joined: 19-01-2007, 07:42
- Location: Subotica - Srbija
- Contact:
Re: skraceni kurs ucenja picbasica
evo mene ponovo u tvojoj temi
tj gledao sam komandu count ona broji inpulse u odredjenom vremenskom perjodu,da bi merac brzo reagovao smanjujem vreme merenja i onda mi ostane neprecizno merenje...velika je razlika izmedju 1 i dva takta u datom perjodu...a i cip mi je "zauzet" dok ceka da prodje vreme...
pa sam odlucio da mi je preciznije meriti vreme jednog takta...
dosao sam do komande PULSIN..
ali imam problem kako da merim vreme inpulsima a da ja mogu da koristim cip za neke provere dok ne naidje sledeci inpuls...
pa sam mislio da ocitavam vrednost tmr0 ili tmr1 na pocetnom taktu i onda da pustim cip da proveri sta ima i da se pre kraja signala vrati i ceka kraj inpulsa i da zabelezi vrednost tmr0 ili tmr1(zavisi kojeg koristim) i onda razlikom tajmera mogu dobiti koliko je vreme trajao inpuls...interesuje me kako da ocitam na kojem je broju tmr0...
a mozda i ne moram da komplikujem,ocitam jedan inpuls sa PULSIN onda propustim merenje jednog inpulsa,za to vreme izvrsim provere i ocitavanja i onda citam sledeci inpls...tako da imam ocitavanja svakog drugog inpulsa...
ali me interesuje i kako da ocitam tmr0...
tj gledao sam komandu count ona broji inpulse u odredjenom vremenskom perjodu,da bi merac brzo reagovao smanjujem vreme merenja i onda mi ostane neprecizno merenje...velika je razlika izmedju 1 i dva takta u datom perjodu...a i cip mi je "zauzet" dok ceka da prodje vreme...
pa sam odlucio da mi je preciznije meriti vreme jednog takta...
dosao sam do komande PULSIN..
ali imam problem kako da merim vreme inpulsima a da ja mogu da koristim cip za neke provere dok ne naidje sledeci inpuls...
pa sam mislio da ocitavam vrednost tmr0 ili tmr1 na pocetnom taktu i onda da pustim cip da proveri sta ima i da se pre kraja signala vrati i ceka kraj inpulsa i da zabelezi vrednost tmr0 ili tmr1(zavisi kojeg koristim) i onda razlikom tajmera mogu dobiti koliko je vreme trajao inpuls...interesuje me kako da ocitam na kojem je broju tmr0...
a mozda i ne moram da komplikujem,ocitam jedan inpuls sa PULSIN onda propustim merenje jednog inpulsa,za to vreme izvrsim provere i ocitavanja i onda citam sledeci inpls...tako da imam ocitavanja svakog drugog inpulsa...
ali me interesuje i kako da ocitam tmr0...