skraceni kurs ucenja picbasica
Moderators: pedja089, stojke369, [eDo], trax
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
treba svaki put kad se pomeri pin za jedan da ode na onu proveru dali je taster stisnut...a dalji program cu ja u loop petlji sa if naredbama da zavrsim,znaci svako pomeranje pina treba da vidi dal je taster stisnut ako je stisnut da stane a kad se taster opet stisne da nastavi,a ako taster nije diran da nastavi
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
e druze pozdrav moze jos jedna pomoc znam da ovo nemoze ovako dodao sam u proteusu taster definisao ga al neznam gde petlju da metem vidi treba kad se stisne tipka da urdai pauzu i to radi super,ali ja sam dodao taster kad je pik pod pausom traba kad se jednom stisne taster da a / sa 2 kad se opet stisne da opet a/2 i itako dalje e neznam kako,znam da iz pod programa nemoze da se poziva glavni program ajde molim te pogledaj kod i pomozi mi jos ovo uffff....
Code: Select all
'****************************************************************
'* Name : IVAN.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 11.11.2012 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
define OSC 4 ' kristal 4MHz
ADCON1 = %00000010 ' PORTE JE DIGITALNI I/O
TRISC = %00000000 ' PORT JE IZLAZNI, LED
SYMBOL TIPKA = PORTE.1 ' ULAZ TIPKE ZA ZAUSTAVLJANJE
symbol taster=porte.0
input TIPKA ' PORT ZA TIPKU JE ULAZNI
input taster
i var byte ' POMOÆNA VARIJABLA ZA BROJAÈ LED-ica
j var byte ' POMOÆNA VARIJABLA ZA BROJAÈ VREMENA
a var byte
b var byte ' POÈETNI LED
'****************************************************************
b=1
' GLAVNI PROGRAM
a = 1
do
portc = a
a = a * 2
call provjera:
pause 100
loop
'****************************************************************
'* PODPROGRAM ZA PROVJERU PRITISKA TIPKE *
'****************************************************************
:provjera
for j = 0 to 100 ' BROJAÈ PAUZA OD 10mS
:P1
if tipka = 0 then ZAUSTAVI ' AKO JE TIPKA PRITISNUTA IDI NA SUB. ZAUSTAVI
pause 1
' PAUZA 10mS
next j ' SLIJEDEÆA PAUZA
if j < 100 then P1 ' JE LI ODBROJENA 1 SEKUNDA?
' AKO JE - IZAÐI, AKO NIJE - VRATI SE U PETLJU
return ' IZLAZ
'****************************************************************
'* PODPROGRAM ZA PROVJERU DVOSTRUKOG PRITISKA TIPKE *
'****************************************************************
:ZAUSTAVI
do while tipka = 0 ' ÈEKAJ DOK JE PRITISNUTA TIPKA
loop
do while tipka = 1 ' ÈEKAJ DOK JE OTPUŠTENA TIPKA
loop
if taster=0 then a = a / 2
do while tipka = 0 ' ÈEKAJ DOK JE OPET PRITISNUTA TIPKA
loop
return ' IZAÐI NAKON OTPUŠTANJA TIPKE
Re: skraceni kurs ucenja picbasica
Pozdrav !
Znam da vam malo skrecem s teme ovim pitanje. Pitanje glasi : ako imam mikrokontroler koji ima radni takt od 20 Mhz , treba li njemu oscilator od 20 Mhz ? Ako treba dal da stavljam kristal od 20 Mhz te koje kondezatore trebam stavit ?
Hvala unaprijed !
Znam da vam malo skrecem s teme ovim pitanje. Pitanje glasi : ako imam mikrokontroler koji ima radni takt od 20 Mhz , treba li njemu oscilator od 20 Mhz ? Ako treba dal da stavljam kristal od 20 Mhz te koje kondezatore trebam stavit ?
Hvala unaprijed !
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
koji je kontroler?
Re: skraceni kurs ucenja picbasica
Code: Select all
'****************************************************************
'* Name : IVAN.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 11.11.2012 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
define OSC 4 ' KRISTAL 4MHz
ADCON1 = %00000010 ' PORTE JE DIGITALNI I/O
TRISC = %00000000 ' PORT JE IZLAZNI, LED
SYMBOL TIPKA = PORTE.1 ' ULAZ TIPKE ZA ZAUSTAVLJANJE
symbol TASTER = PORTE.0
input TIPKA ' PORT ZA TIPKU JE ULAZNI
input taster
j var byte ' POMOANA VARIJABLA ZA BROJAC VREMENA
a var byte
a = 1
'****************************************************************
MAIN: ' GLAVNI PROGRAM
do
a = a * 2
portc = a
call provjera:
pause 100
IF A = 0 THEN A = 1 ' VRATI VRIJEDNOST ZA A
loop
'****************************************************************
'* PODPROGRAM ZA PROVJERU PRITISKA TIPKE *
'****************************************************************
:provjera
for j = 0 to 100 ' BROJAE PAUZA OD 10mS
:P1
if tIPKA = 0 then ZAUSTAVI ' AKO JE TIPKA PRITISNUTA IDI NA SUB. ZAUSTAVI
pause 1
next j ' SLIJEDECA PAUZA
if j < 100 then P1 ' JE LI ODBROJENA 1 SEKUNDA?
' AKO JE - IZADI, AKO NIJE - VRATI SE U PETLJU
return ' IZLAZ
'****************************************************************
'* PODPROGRAM ZA PROVJERU DVOSTRUKOG PRITISKA TIPKE *
'****************************************************************
:ZAUSTAVI
do while TIPKA = 0 ' CEKAJ DOK NE OTPUSTIS TIPKA
loop
do while TIPKA AND TASTER ' CEKAJ DOK NE PRITISNES TIPKU ILI TASTER
loop
IF TASTER = 0 THEN
A = A / 2 ' AKO JE STISNUT TASTER a = a/2
portc = a
ENDIF
DO WHILE TIPKA = 0 OR TASTER = 0 ' CEKAJ DOK NE OTPUSTIS TIPKU ILI TASTER
LOOP
return
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
Skoro vrati ga za jedan i izdje iz pauze a treba
kad je u pauzi da stoji u pauzi sve dok se opet nestesne tipka,a ako jednom stisnem taster uradi a\2 pa ako opet stisnem taster uradi opet a\2 i tako dalje...ali ostaje u pauzi sve dok nestisnem opet tipku
a sada kada stisnem taster uradi a=a/2 i nastavlja a=a*2,i nemogu nikako ime da promenim uradim save as ali trazi mi proteus ivan.asm kad zamenim ime i compilujem.Puno puno hvala sto mi pomazes
kad je u pauzi da stoji u pauzi sve dok se opet nestesne tipka,a ako jednom stisnem taster uradi a\2 pa ako opet stisnem taster uradi opet a\2 i tako dalje...ali ostaje u pauzi sve dok nestisnem opet tipku
a sada kada stisnem taster uradi a=a/2 i nastavlja a=a*2,i nemogu nikako ime da promenim uradim save as ali trazi mi proteus ivan.asm kad zamenim ime i compilujem.Puno puno hvala sto mi pomazes
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
nisam opet dobro objasnijo ako je u pauzi i stiskam taster treba da uradi a=a/2 pa ako opet stisnem taster da uradi a=a/2 a u pauzi ostaje sve dok nestisnem tipku sa kojom izlazi iz pauze
Re: skraceni kurs ucenja picbasica
Code: Select all
'****************************************************************
'* Name : IVAN.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 11.11.2012 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
define OSC 4 ' KRISTAL 4MHz
ADCON1 = %00000010 ' PORTE JE DIGITALNI I/O
TRISC = %00000000 ' PORT JE IZLAZNI, LED
SYMBOL TIPKA = PORTE.1 ' ULAZ TIPKE ZA ZAUSTAVLJANJE
symbol TASTER = PORTE.0
input TIPKA ' PORT ZA TIPKU JE ULAZNI
input taster
j var byte ' POMOANA VARIJABLA ZA BROJAC VREMENA
a var byte
a = 1
'****************************************************************
MAIN: ' GLAVNI PROGRAM
do
a = a * 2
portc = a
call provjera:
pause 100
IF A = 0 THEN A = 1 ' VRATI VRIJEDNOST ZA A
loop
'****************************************************************
'* PODPROGRAM ZA PROVJERU PRITISKA TIPKE *
'****************************************************************
:provjera
for j = 0 to 100 ' BROJAE PAUZA OD 10mS
:P1
if tIPKA = 0 then ZAUSTAVI ' AKO JE TIPKA PRITISNUTA IDI NA SUB. ZAUSTAVI
pause 1
next j ' SLIJEDECA PAUZA
if j < 100 then P1 ' JE LI ODBROJENA 1 SEKUNDA?
' AKO JE - IZADI, AKO NIJE - VRATI SE U PETLJU
return ' IZLAZ
'****************************************************************
'* PODPROGRAM ZA PROVJERU DVOSTRUKOG PRITISKA TIPKE *
'****************************************************************
:ZAUSTAVI
do WHILE TIPKA = 0 ' CEKAJ DOK NE OTPUSTIS TIPKA
LOOP
DO
IF TASTER = 0 THEN
A = A / 2 ' AKO JE STISNUT TASTER a = a/2
portc = a
do while TASTER = 0
LOOP
ENDIF
loop UNTIL TIPKA = 0
DO WHILE TIPKA = 0 ' CEKAJ DOK NE OTPUSTIS TIPKU
LOOP
return
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
da to je to samo ima dve mane... kada je upaljena dioda na pinu c.7 i kada stisnem da se vrati nevrati se nego ugasi sve,i kad je u pauzi prvi put kad stisnem da vrati unazad nece tek na drugi stisak se vraca a kad vrati prvi put druga i naredna vracanja odradi na prvi stisak,jer se to moze ispraviti.
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
UUu to mi svi nadju za nacin izrazavanja hehe a ja mislim da nisam komplikovan hvala hvala sto mi pomazes na ovom projektu
Re: skraceni kurs ucenja picbasica
Meni sve radi, ništa se od toga što si rekao se ne pojavljuje. Probao sam čekat dok ne upali PORTC.7, tada zaustavim program s TIPKOM i dijelim s 2 (pomičem LED unatrag) s TASTER-om.Sve uredno radi. Ma da se ti ne bi mučio, evo ti komplet
https://www.dropbox.com/s/5fu2yus6t6w0miv/Ivan.rar
https://www.dropbox.com/s/5fu2yus6t6w0miv/Ivan.rar
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
druze ok ali ovo je samo poretak ja cu paliti vise portova od jednom treba ja dosta da racunam unutar do i loop da bi zavrsio samo jedno pitanjce vidim da si naoisao ispod tipke port c = a meni ce ici diodice po svim portovima a a ce biti broj na osnovu kog ce se sve ostalo povlaciti pitanje ako mi broj predje u port b ili bilo koji drugi sta treba da dopisem da bi mogao da ga vratim sa porta na ovo mislim
A = A / 2 ' AKO JE STISNUT TASTER a = a/2
portc = a
dabi je dovoljno ako sa portom c upravlja nepoznata x da dopisem
x = portc
i nemogu ime da promenim ama bas nikako uffffffff....
kad promenim kaze nepostoji ivan.asm
A = A / 2 ' AKO JE STISNUT TASTER a = a/2
portc = a
dabi je dovoljno ako sa portom c upravlja nepoznata x da dopisem
x = portc
i nemogu ime da promenim ama bas nikako uffffffff....
kad promenim kaze nepostoji ivan.asm
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
da ovo tvoje radi super da skontacu kako da resim racunanje portova ovo mi je bilo bitno,ako zapnem lako je okaciti cod i traziti helppppppp jos samo nesto sa kojom komandom na pocetku ja cu izdefinisati sve,sa kojom komandom da uradim da nekrene program dok se nestisne taster treci ja cu ga dodati samo mi napisi sta ide na pocetku programa
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
uprincipu znam renje svih mojih muka da zanam da otkucam ceo kod do krajamoze mesto ovog
A = A / 2 ' AKO JE STISNUT TASTER a = a/2
portc = a
da se nepominje ovde port c nego nepoznata?
A = A / 2 ' AKO JE STISNUT TASTER a = a/2
portc = a
da se nepominje ovde port c nego nepoznata?
Re: skraceni kurs ucenja picbasica
Eh, taman mislim kako sam uspio pohvatat tvoje misli, kad iskrsne ovo:
ivan malesevic wrote:uprincipu znam renje svih mojih muka da zanam da otkucam ceo kod do krajamoze mesto ovog
A = A / 2 ' AKO JE STISNUT TASTER a = a/2
portc = a
da se nepominje ovde port c nego nepoznata?
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
hehe lik si vidi druze
a je nepoznata koja ce se uvecavati i ici po portovima
ja cu ovo uraditi
a je broj koji ce se uvecavati stalno
tako cu natravita
bice par nepoznatih
od a ce se oduzimati brojevi i deliti po portovima
lupetaram sada
porte=a-100
portb=a-150
lupio sam ove brojeve da nemislis da...
znaci nemozemo definisati da je port c=a
uf valjda si me ukapirao
a je nepoznata koja ce se uvecavati i ici po portovima
ja cu ovo uraditi
a je broj koji ce se uvecavati stalno
tako cu natravita
bice par nepoznatih
od a ce se oduzimati brojevi i deliti po portovima
lupetaram sada
porte=a-100
portb=a-150
lupio sam ove brojeve da nemislis da...
znaci nemozemo definisati da je port c=a
uf valjda si me ukapirao
Re: skraceni kurs ucenja picbasica
Ako se ovo odnosi na moje pitanje, radi se o PIC16F877A ali opcenitu me zanjima imali kakvo pravilo stavljana kristala i kondezatora, pretpostavljam da nemrem sam bunut i da bu to tak bas radilo. Hmmm.... sad sam se sijetio idem ja lijepo u datasheet proucit dio sa oscilatorom pa mozda skuzi. Ali svaki savjet je dobro dosoivan malesevic wrote:koji je kontroler?
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
@mak
16f877a ima i na 4 i na 20 mhz kolko je njegov takt tolki mora biti spoljni kristal dva bloka 22 pf ka masi jedan na jednu nogicu drugi na drigu
znaci izmedju osc1 i osc 2 paralerno kristal a sa svake nogice redno blok ka masi
16f877a ima i na 4 i na 20 mhz kolko je njegov takt tolki mora biti spoljni kristal dva bloka 22 pf ka masi jedan na jednu nogicu drugi na drigu
znaci izmedju osc1 i osc 2 paralerno kristal a sa svake nogice redno blok ka masi
-
- Penjem se :)
- Posts: 80
- Joined: 10-11-2012, 15:02
Re: skraceni kurs ucenja picbasica
E dosadio sam sam sebi al...nemislim
ideja dali moze a da bude jedan broj koji ce se uvecavati i jedno mesto u programu gde cu deliti a po potovima
primer
if a=100 then
portc=a-50
portd=a-10
a=10
end if
znaci ja sam ovo hteo da pisem u petlji
do
.
.
loop
ali sad neznam kako da resim radi ovog vracanje unazad
ideja dali moze a da bude jedan broj koji ce se uvecavati i jedno mesto u programu gde cu deliti a po potovima
primer
if a=100 then
portc=a-50
portd=a-10
a=10
end if
znaci ja sam ovo hteo da pisem u petlji
do
.
.
loop
ali sad neznam kako da resim radi ovog vracanje unazad
Re: skraceni kurs ucenja picbasica
Hvala !ivan malesevic wrote:@mak
16f877a ima i na 4 i na 20 mhz kolko je njegov takt tolki mora biti spoljni kristal dva bloka 22 pf ka masi jedan na jednu nogicu drugi na drigu
znaci izmedju osc1 i osc 2 paralerno kristal a sa svake nogice redno blok ka masi
Ah u datasheetu je lijepo nacrtana tablica sa svime , mislim da je negjde oko 120 strane.
Hvala jos jednom.