skraceni kurs ucenja picbasica
Moderators: pedja089, stojke369, [eDo], trax
Re: skraceni kurs ucenja picbasica
Sve vec punooo puta napisano...
Zavisi koji kontroler. A taj kontroler ima datasheet u kojem sve pise...
Citaj..
Pa kad ti nesto ne bude jasno, onda pitaj.
A evo i ovde odgovora
http://www.elektronika.ba/forum/viewtop ... 00#p132570
Zavisi koji kontroler. A taj kontroler ima datasheet u kojem sve pise...
Citaj..
Pa kad ti nesto ne bude jasno, onda pitaj.
A evo i ovde odgovora
http://www.elektronika.ba/forum/viewtop ... 00#p132570
Re: skraceni kurs ucenja picbasica
i dali za svaki pic kad mu nakacis sift register je ista definicija?znaci ako bi nakacio 2 kako di izvedem da mi bude ovako 11111111111111 znaci da bude kao jedan veliki
Re: skraceni kurs ucenja picbasica
Izlaz prvog na ulaz drugog. Klok reset i ostalo zajedno.
Re: skraceni kurs ucenja picbasica
jasno mi je to,al kako na programu napisati ako sa a porta ide?
Re: skraceni kurs ucenja picbasica
sad sam ceprko po meni treba kao za display izdefinisati gde je spojena lec a gde cloc od registra i onda :reg i broj al kako to uraditi moze neko neki primer da mi da?
-
- Posts: 11
- Joined: 15-01-2013, 09:44
Re: skraceni kurs ucenja picbasica
Imam 3 prekidača spojena na PORTA i tri ledice spojene na PORTB. Može mi netko dati primjer programa kojim sa po jednim prekidačem palim i gasim po jednu ledicu, ali pritiskom bilo kojeg prekidača na 5 sekundi ugasim sve ledice.. Pozdrav svima..
Re: skraceni kurs ucenja picbasica
Bok !
Prvenstveno bilo bi lijepo od tebe da se vratis na prve stranice ovog topika. Drugo uvijek kad navodis svoj problem napisi o kojem mikrokontrolelu se radi. Probaj sam , a tamo gdije zapne pitaj ovdije na forumu i dobit ces pomoc (ako znamo naravno) Znaci prvo procitaj prvih barem 2-3 str. kako bi shvatio osnvne naredbe. Help je korisan i dobro objasnjava , ako ne stojis s eng na ti onda preporucam google prevoditelj. Svaki mikrokontroler imam svoj datasheet . To je potrebna dokumentacija koja sadrzi razna objasnjena (npr. A/D konverter,INTOSC,...) .
Prvenstveno bilo bi lijepo od tebe da se vratis na prve stranice ovog topika. Drugo uvijek kad navodis svoj problem napisi o kojem mikrokontrolelu se radi. Probaj sam , a tamo gdije zapne pitaj ovdije na forumu i dobit ces pomoc (ako znamo naravno) Znaci prvo procitaj prvih barem 2-3 str. kako bi shvatio osnvne naredbe. Help je korisan i dobro objasnjava , ako ne stojis s eng na ti onda preporucam google prevoditelj. Svaki mikrokontroler imam svoj datasheet . To je potrebna dokumentacija koja sadrzi razna objasnjena (npr. A/D konverter,INTOSC,...) .
-
- Posts: 11
- Joined: 15-01-2013, 09:44
Re: skraceni kurs ucenja picbasica
Code: Select all
ADCON1 = 7 'Turn off ADC
CMCON = 7 'Turn off comparator
TRISA = $FF
TRISB = $00
portb=0
SYMBOL LED1=PORTB.0
SYMBOL LED2=PORTB.1
SYMBOL LED3=PORTB.2
SYMBOL T1=PORTA.0
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
A VAR BYTE
POC:
A=0
BUTTON t1,0,255,0,a,1,led1ON
A=0
BUTTON t2,0,255,0,a,1,led2ON
A=0
BUTTON t3,0,255,0,a,1,led3ON
GOTO POC
LED1ON:
TOGGLE LED1
PAUSE 500
GOTO POC
LED2ON:
TOGGLE LED2
PAUSE 500
GOTO POC
LED3ON:
TOGGLE LED3
PAUSE 500
GOTO POC
LED4ON:
PORTB=0
PAUSE 500
GOTO POC
END
Re: skraceni kurs ucenja picbasica
Da ti se nakon sto drzis tipkalo 5 sek ledice ugase ? Pa to mozes i sa while wend i if petljom. Npr. ovo je kad drzis tipkalo duze od 5 sec ledice se gase
Kao sto vidis ovo je samo primjer , sad to malo prilagodis svojim potrebama .
Edit:
Na shemi ti fale otpori za ledice.
Code: Select all
i var byte
i =0
While prekidac3 = 1
pause 100
i = i + 1
wend
if i >=50 then
gasi sve led
endif
i = 0
Edit:
Na shemi ti fale otpori za ledice.
-
- Posts: 11
- Joined: 15-01-2013, 09:44
Re: skraceni kurs ucenja picbasica
Hvala, sad je već malo jasnije.. Izostavio sam još jedan uvjet, a to je da program ne čeka navedenih 5 sekundi ukoliko ni jedna tipka nije pritisnuta. Znači ako je tipka pritisnuta i puštena, odmah "toggla" pripadajuću ledicu i vraća se na labelu POC. Ako je tipka pritisnuta i zadržana da broji..broji...broji.. i ako prođe 5 sekundi, ugasi sve ledice i opet se vrati na labelu POC. Može li netko na ovom programu kojeg sam postavio izvest to da radi, i to na više načina ako je moguće. ? Vidjeti tako malo složeniji uvjet u praksi uz objašnjenje, najbolje bi pomoglo meni, a nadam se i drugim početnicima u razumjevanju ove problematike. Radim u proteusu, tako da otpori nisu bitni za simulaciju. Ako (kad ) budem realizirao neki projekt bit će sve što treba.
Re: skraceni kurs ucenja picbasica
Malo sam se zbunio... Kaj tebi program ceka 5 sek ? Ma ja sam sigurno opet izveo neku svoju zamisao a da ju nisam sagledao sa svih kuteva . To je sigurno tak jednostavno a ja ga zakomplicirah... Razmislit cu ja kak se to jos moze rijesit. Mozda neko drugi zna...
Re: skraceni kurs ucenja picbasica
Timer + DT INT...
Za tako nesto najbolje je raditi interaptima koji ovde nisu obradjeni iz vise razloga...
Ali svakako predlazem da pogledate
http://darreltaylor.com/DT_INTS-14/intro.html
To su asemblerski interapti u kojima se moze koristiti basic
Za to je potreban mpasm.
Za tako nesto najbolje je raditi interaptima koji ovde nisu obradjeni iz vise razloga...
Ali svakako predlazem da pogledate
http://darreltaylor.com/DT_INTS-14/intro.html
To su asemblerski interapti u kojima se moze koristiti basic
Za to je potreban mpasm.
Re: skraceni kurs ucenja picbasica
Ok, hvala !
-
- Posts: 11
- Joined: 15-01-2013, 09:44
Re: skraceni kurs ucenja picbasica
Zamisli da imaš kuću sa tri sobe. U svakoj sobi imaš jedan taster i jedno svjetlo. Sa tasterom u sobi br.1 gasiš i pališ svjetlo u sobi br.1. Sa tasterom u sobi br.2 gasiš i pališ svjetlo u sobi br.2. Sa tasterom u sobi br.3 gasiš i pališ svjetlo u sobi br.3. Sad kako napraviti program da sa bilo kojim tasterom gasiš svjetla u svim sobama ako je bilo koji taster pritisnut i tako zadržan 5 sekundi. Uz to uvjet je da program ne čeka npr. ostale 4 sekundi ako je taster pritisnut i pušten nakon 1 sekundu. Može li netko ovo primjeniti u programu koji sam postavio? Naravno, na više načina ako može.. Nadam se da sam sad bio jasan ..Maki wrote:Malo sam se zbunio... Kaj tebi program ceka 5 sek ? Ma ja sam sigurno opet izveo neku svoju zamisao a da ju nisam sagledao sa svih kuteva . To je sigurno tak jednostavno a ja ga zakomplicirah... Razmislit cu ja kak se to jos moze rijesit. Mozda neko drugi zna...
Re: skraceni kurs ucenja picbasica
Predlozio sam ti interapte. Setuj neki tajmer na recimo 10mS, i ako je taster pritisnut uvecaj svaki put promenljivu, kad dodjes do 50000, pogasi sve izlaze. Ako je taster pusten, resetujes tu promenljivu.
Re: skraceni kurs ucenja picbasica
Evo bas gledam interapte , opcenito tajmere i to je zakon ! Istina da nisam sve proucio al ovo kaj sam uspio skuzit dokazuje da je timer odlicna stvar . Evo ovo nije reijeseno pomocu tajmera ali moze pomoc. Sve ledice ce se gasit ak drzis t3 .
Jos x definiras kao rijec tj. word i to bi trebalo stimat.
Code: Select all
x = 0
if t3 = 0 then
while t3 = 0
pause 10
x = x + 1
wend
if x >= 500 then
portb = 0
endif
x = 0
endif
-
- Posts: 11
- Joined: 15-01-2013, 09:44
Re: skraceni kurs ucenja picbasica
napravioooo sam gaaaaa !!!!!!!
probao u proteusu i radi.. ajme kako sam sada ponosan .. za mene početnika ovo je velik uspjeh..
probao u proteusu i radi.. ajme kako sam sada ponosan .. za mene početnika ovo je velik uspjeh..
Code: Select all
ADCON1 = 7 'Turn off ADC
CMCON = 7 'Turn off comparator
TRISA = $FF
TRISB = $00
portb=0
SYMBOL LED1=PORTB.0
SYMBOL LED2=PORTB.1
SYMBOL LED3=PORTB.2
SYMBOL T1=PORTA.0
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
A VAR BYTE
B var byte
POC:
b=1
A=0
BUTTON t1,0,255,0,a,1,led1ON
A=0
BUTTON t2,0,255,0,a,1,led2ON
A=0
BUTTON t3,0,255,0,a,1,led3ON
GOTO POC
LED1ON:
TOGGLE LED1
PAUSE 500
gosub test
GOTO POC
LED2ON:
TOGGLE LED2
PAUSE 500
gosub test
GOTO POC
LED3ON:
TOGGLE LED3
PAUSE 500
gosub test
GOTO POC
LED4ON:
PORTB=0
PAUSE 2000
GOTO POC
test:
if (t1=0) or (t2=0) or (t3=0) and (b<5) then
b=b+1
pause 1000
goto test
else
endif
if b=>5 then
goto led4on
else
return
endif
end
Re: skraceni kurs ucenja picbasica
Return iz test nikako ne sme biti uslovljen bilo cime!
Jer ce napuniti stack, i onda moze da bude brljotina...
Isto tako ne mozes imati gosub nesto, pa iz tog necega goto nesto drugo, pa opet goto...
Posle svakog gosub moras imati return.
To tvoje bi moglo raditi kada bi stavio na kraju led4on return.
Ali takve stvari su jako zajebane za ispratiti, i lako se napravi greska, i onda se pic cudno ponasa, tj ne znas sta mu je...
Jer ce napuniti stack, i onda moze da bude brljotina...
Isto tako ne mozes imati gosub nesto, pa iz tog necega goto nesto drugo, pa opet goto...
Posle svakog gosub moras imati return.
To tvoje bi moglo raditi kada bi stavio na kraju led4on return.
Ali takve stvari su jako zajebane za ispratiti, i lako se napravi greska, i onda se pic cudno ponasa, tj ne znas sta mu je...
-
- Posts: 11
- Joined: 15-01-2013, 09:44
Re: skraceni kurs ucenja picbasica
Evo malo sam prepravio program. Bi li ovako moglo? Mogu li biti dva returna? Da li se ovako stack resetira? U interapte i ostalo još nebi ulazio dok skroz ne pohvatam ovo osnovno.
Code: Select all
SYMBOL LED1=PORTB.0
SYMBOL LED2=PORTB.1
SYMBOL LED3=PORTB.2
SYMBOL T1=PORTA.0
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
A VAR BYTE
B var byte
POC:
b=1
A=0
BUTTON t1,0,255,0,a,1,led1ON
A=0
BUTTON t2,0,255,0,a,1,led2ON
A=0
BUTTON t3,0,255,0,a,1,led3ON
GOTO POC
LED1ON:
TOGGLE LED1
PAUSE 500
gosub test
GOTO POC
LED2ON:
TOGGLE LED2
PAUSE 500
gosub test
GOTO POC
LED3ON:
TOGGLE LED3
PAUSE 500
gosub test
GOTO POC
gasisve:
PORTB=0
PAUSE 2000
return
GOTO POC
test:
if (t1=0) or (t2=0) or (t3=0) and (b<50) then
b=b+1
pause 100
goto test
else
endif
if b=>50 then
goto gasisve
else
return
endif
end
Re: skraceni kurs ucenja picbasica
Mogu biti, ali tako da se samo jedan izvrsava.
ja big u tvom slucaju zaobisao sve gosub, i ne bi razmisljao puno...
Imas puno nepotrebnih pauza. Imas vidska else, imas vidska goto poc...
Ajd sad doteraj taj kod da lici na nesto...
Inace sad bi to trebalo da radi.
Stack se sa gosub uveca za 1, sa return smanji za 1. Uvek konacan rezultat mora da bude 0, da program ne bi brljavio.
ja big u tvom slucaju zaobisao sve gosub, i ne bi razmisljao puno...
Imas puno nepotrebnih pauza. Imas vidska else, imas vidska goto poc...
Ajd sad doteraj taj kod da lici na nesto...
Inace sad bi to trebalo da radi.
Stack se sa gosub uveca za 1, sa return smanji za 1. Uvek konacan rezultat mora da bude 0, da program ne bi brljavio.