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
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 »

Joj stvarno si....tamam se ponadamo da ti ode čitat', kad ono opet....
Peđa, sorry što ti škrabam po temi, neću više, al ovaj je stvarno.... :azdaja:
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Ne valja ti pristup nikako. Sa 4-5 izlaza mozes imati do 32 kombinacije na izlazu.
Znaci trebaju ti samo 2 konstante... Knjiga za proton nema na nasem, koliko ja znam.
Ako imas kod koji broji 0-9, onda imas sve sto ti treba za bilo koji brojac...
hvarovic
Posts: 7
Joined: 08-05-2011, 23:32

Re: skraceni kurs ucenja picbasica

Post by hvarovic »

Pozdrav,
Zanima me jedna stvar ako mi netko može odgovoriti. Da li se sa pic mikrokontrolerom može napraviti nekakvi koder/dekoder. npr. na jednoj strani imam 8 ulaza u 16f84a i jedan izlaz, a na drugoj strani jedan ulaz u 16f84a i 8 izlaza. Koristio bi 2 pic16f84a MK, jedan kao koder, a drugi kao dekoder. Hvala!
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Moze.
orion90
Posts: 2
Joined: 13-02-2012, 08:22

Re: skraceni kurs ucenja picbasica

Post by orion90 »

pozdrav
odmah da napomenem da sam pocetnik,pratio sam malo postove sa pocetka pa resio da probam nesto ako neko ima vremna neka pogleda.hvala

Code: Select all

symbol MOT1=PORTB.7                 ' motor 1
sYmbol MOT2=PORTB.6                 ' motor 2
sYmbol MOT3=PORTB.5                 ' motor 3
sYmbol TASTER1=PORTB.4              
sYmbol TASTER2=PORTB.3
sYmbol TASTER3=PORTB.2
sYmbol SENZOR=PORTB.1
SYMBOL START=PORTB.0
OUTPUT MOT1
OUTPUT MOT2
OUTPUT MOT3
INPUT TASTER1
INPUT TASTER2
INPUT TASTER3
INPUT senzor
INPUT START
pocetak:
IF START=0 AND SENZOR=1 THEN          'akoje ispunjen uslov        
HIGH MOT1                             'motor 1 startuje
ELSE                                  'ako nije ispunjen uslov sve miruje
ENDIF                                 'ako je ispunjen uslov nastavlja
PAUSE 5000
IF TASTER1=0 AND START=0 AND SENZOR=1 THEN ' ako je ispunjen uslov
HIGH MOT1                                  ' svi motori startuju
HIGH MOt2
HIGH MOT3
ELSE                                       ' ako nije ispunjen uslov sve stoji
ENDIF                                      ' ako je ispunjen nastavlja
PAUSE 20000 
label:
IF START=0 AND TASTER1=1 AND TASTER2=0 AND TASTER3=0 AND SENZOR=0 then    'akoje ispunjen uslov rade motori 2i3
LOW MOT1 
HIGH MOT2
HIGH MOt3
ELSE                                        ' ako nije ispunjen uslov svi miruje
ENDIF                                       ' ako je ispunjen nastavlja
goto label                ' sad bi trebalo da skoci na labelu i da rade motori 2 i3 dok se stanje ne promeni
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Ubuduce koristi code tagove. Kad pises post imas dugme code, 5 po redu, i klikni na njega pa izmedju ubaci kod...
Pogledao sam i sta sa tim?
User avatar
Black Angel
Odlično uznapredovao
Odlično uznapredovao
Posts: 980
Joined: 08-10-2008, 20:54
Location: Dubrovnik

Re: skraceni kurs ucenja picbasica

Post by Black Angel »

Mislim da ti nije potreban ovaj ELSE prije ENDIF-a..... :roll:
Korg X5D <3
orion90
Posts: 2
Joined: 13-02-2012, 08:22

Re: skraceni kurs ucenja picbasica

Post by orion90 »

izvinjavam se zbog greski prilikom pisanja posta, zanima me da li to funkcionise tako kako je napisano i jos nesto start je klasican prekidac koji ostaje ukljucen i ako dodje do prekida programa da li ce njegovim iskljucenjem i ponovnim ukljucenjem program krenuti od pocetka?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Dok ne probas ne mozes znati kako funkcionise. Ja ne znam kako bi to trebalo da radi, ni sta bi trebalo da radi...
To najbolje ti znas.
User avatar
morski_pas
Odlično uznapredovao
Odlično uznapredovao
Posts: 639
Joined: 07-03-2011, 23:58
Location: Rijeka

Re: skraceni kurs ucenja picbasica

Post by morski_pas »

evo nakon dugog vremena i ja počeo pod stare dane da se igram sa picbasicom ,čitajući razne sajtove sa tom tematikom naletio sam na zgodni programčić za upravljanje postavkama sa jednim tasterom ,možda će nekom koristiti :lol:

Code: Select all

	MyButton var PortB.0		' Your Button can be anywhere
					' Connect between PIC pin and Vss
					' Use Weak Pull-Up or Resistor to Vdd

	ButtonPress var BYTE		' Button Counter Variable

	LongPress con 20		' Change this value for desired SET 
					' function trip-point in 50mS steps
					' Currently set for 1 Second

	
MainLoop:
	LCDOut $FE,1,"Go Press..."
ButtonLoop:
	Gosub GetButton
	If ButtonPress>0 then
		If ButtonPress=1
			LCDOut $FE,1,"Short Press"
			else	
			LCDOut $FE,1,"Long Press"
			endif
		Pause 1000
		Goto MainLoop
		endif
	Goto ButtonLoop

	'
	'	Subroutine weighs-up users finger
	'	in multiples of 50mS
	'	Constant LONGPRESS determines boredom level
	'	-------------------------------------------
	'	on Exit...
	'	ButtonPress=0 - No Press
	'	ButtonPress=1 - Short Press
	'	ButtonPress=2 - Long Press
GetButton:
	ButtonPress=0
	While MyButton=0
		If ButtonPress<255 then ButtonPress=ButtonPress+1
		Pause 50 ' This is also our Debounce value
		Wend
	If ButtonPress>0 then
		If ButtonPress=>LongPress then 
			ButtonPress=2
			else
			ButtonPress=1
			endif
		endif
	Return
evo i kratkog videa kako to izgleda
http://youtu.be/3sEa6vsGs-s
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Nije lose, ali ako korisnik zaspi na dugmetu, program nikad nece izaci iz while petlje. Trebao bi dodati jos jedan brojac koji bi sluzio za timeout...
vasso123
Penjem se :)
Penjem se :)
Posts: 53
Joined: 30-01-2007, 14:42

Re: skraceni kurs ucenja picbasica

Post by vasso123 »

Decki izvinjavam se na neznanju,jel mi moze netko objasnit kakva je razlika izmedju programatora od pedje(onaj jednostavni sa 2 tranzistora) i nekog kupljenog sa puno elektronike gore?
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: skraceni kurs ucenja picbasica

Post by InTheStillOfTheNight »

Prva razlika između svih jednostavnih i nešto kompliciranijih programatora je USB. Ne može se napraviti USB programator sa 2 tranzistora. To nije toliko značajna razlika pošto se USB jednostavno može prebaciti na RS232 i tu već dolazi prvi MCU ili nekakav konverter što više nije 2 tranzistora.

Najznačajnija razlika skupljih programatora je zaštita. Zapalio sam jedan JTAGICE MKII za AVR pa kroz pokušaje popravka sam skužio kako je napravljen hardware. Unutra je brdo zaštita od kratkog spoja, nedozvoljenog napona, krivog polariteta napona, pa ESD zaštite USB-a, dobro izvedena stabilizacija napajanja...

Sa software strane moguće je napraviti puno veću podršku u programatorima sa mikrokontrolerom, pa takvi programatori često podržavaju i različite protokole programiranja, in system DEBUG, upgrade software-a u programatoru...

Ako gledaš sa strane HEX-a i onog što se u konačnici upiše u MCU, onda razlike nema.
InTheStillOfTheNight
mkarabasic
Posts: 5
Joined: 20-03-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by mkarabasic »

Pozdrav svima. Odlučio sam se malo poigrtati sa picevima pa naletio na ovu temu. Svaka čast autoru.
Eh sad, odmah pa pitanje :).
Nabavio sam sa ebaya programator za 16f877A i neku malu ravojnu pločicu( ledice na D izlazima, tasteri na B i to je manje više to glede opcija.
Krenuo sam Po Peđinom kursu i odmah na početku zapeo. Vidim da tamo uopće na početku koda nije definiran device, te kad sam probao kompajlirati program bacio mi je grešku. Ok, to sam dodao i uspješno kompajlirao i natjerao svoje ledice da blinkaju.
Krenuo sam dalje idošao do dijela gdje se uključuju tasteri. I tu mi sad nastaje problem.
Kompajliram kod i programiram pic ali se kod ne izvršava kako treba.

Code: Select all

        DEVICE = 16F877A
        SYMBOL LED1 = PORTD.7     'preimenuj PORTB.7 u LED1
        SYMBOL LED2 = PORTD.6     'preimenuj PORTB.6 u LED2
        SYMBOL TASTER = PORTB.0 'preimenuj PORTB.0 u TASTER
        OUTPUT LED1                     'postavi LED1 kao izlazni
        OUTPUT LED2                     'postavi LED2 kao izlazni
        INPUT TASTER                    'postavi TASTER kao ulaz

    pocetak:                                'pocetak programa
        LOW LED1                          'ugasi obe LED
        LOW LED2
    tipkalo:
        IF TASTER=0 THEN              'detektiranje stanja tastera(ako je pritisnut)
        HIGH LED1                         'upali LED1
        LOW LED2                          'ugasi LED2
        PAUSE 1000                        'pauza od 1s
        LOW LED1                          'ugasi LED1
        HIGH LED2                         'upali LED2
        PAUSE 1000                        'pauza 1s
        else                                   'u suprotnom (ako nije pritisnut)
        LOW LED1                             'ugasi LED1
        LOW LED2                           'ugasi LED2
        ENDIF
        GOTO tipkalo                      'vrati se na labelu tipkalo (petlja)
    END    

Evo uzeo sam ovaj kod koji drugom forumašu radi. Problem je što moj pic reagira čim dotaknem b0 bez da ga uopće stisnem. Ajde to bi mogao pripisati nekom elektricitetu mene samog. Drugi je to što kad dotaknem prstom b0 petlja se zavrti ali ledice blinkaju puno brže nego što bi trebale. Imam osjećaj da griješim odmah u početku sa nekom jednostavnom stvari pa ako netko može pomoći. Hvala puno.
p.s. Sutra ću snimiti video što se događa ako bi pomoglo.

Prvi dio kursa sa blinkanjem ledica, paljenje naizmjenično itd mi radi i to sam uspio složiti
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 »

Ubaci na pocetku naredbu ADCON1=7
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 »

Čim pritisnes taster jedan put kao da si ga pritisnuo milion puta, posto nema ogranicenja za petlju. Ubaci dio koji prati promjenu stanja tastera. Pogledaj kako sam ja to odradio na digitalnom dimmer-u. ili nesto slicno. Msm da je to najjednostavnije. Umjesto
IF TASTER=0 THEN
upotrijebi varijablu starostanje--> novo stanje primjer:

Code: Select all

IF nst >sst THEN..
pogledaj bilo je ovdje na forumu. Pozdrav!
mkarabasic
Posts: 5
Joined: 20-03-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by mkarabasic »

Probao sam sa ADCON1=7 i i dalje je ista stvar. Čudno mi je i to što je u programu inicijalno ugasi ledice a meni non stop svijetle konstantno. I frekvencija izmjene je cca 100ms a ne sekunda kako je u programu. Blinkanje mi krene čim prstom dotaknem B0 pin.
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 »

Da li je reset taster spojen preko pulup otpornika ok oko 5-10k na + pol napajanja? sa onim adcon1=7 samo iskljucujes komparatore.
mkarabasic
Posts: 5
Joined: 20-03-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by mkarabasic »

Spojen je preko 10k.
http://www.ebay.com/itm/New-PIC-Develop ... 768wt_1392 to je ta testna pločica.
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 »

Da problem je u pravo ono sto sam vec rekao, trebas ukljuciti provjeru promjene stanja a ne stanje tastera. Pogledaj kako sam to rijesio u gore navedenom postu. Tamo imam dva tasteraza povecavanje i smanjivanje pa izbaci jedan i to je to. Ne bih da kazem bas sve malo "istrazuj" bice ti zanimljivije, ako se bas ne snadjes napisacu ti taj dio :)
Poz.
Post Reply