skraceni kurs ucenja picbasica

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
code_service
Posts: 11
Joined: 15-01-2013, 09:44

Re: skraceni kurs ucenja picbasica

Post by code_service »

Evo ga bez gosub i pauza. U potprogramu gasisve mora biti neka pauza jer se program odmah vraća na početak prije nego stignem otpustit taster, pa se pripadajuća dioda odmah upali..

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
goto test

LED2ON:
TOGGLE LED2
goto test

LED3ON:
TOGGLE LED3
goto test

gasisve:
PORTB=0
pause 2000
GOTO POC

test:
if (t1=0) or (t2=0) or (t3=0) and (b<50) then
b=b+1
pause 100
goto test
endif
if b=>40 then
goto gasisve
else
goto poc
endif
end
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Evo ti jedan prijedlog:

Code: Select all

'****************************************************************
'*  Name    : code_service.BAS                                  *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 15.01.2013                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

DEFINE OSC 4
ADCON1 = 7
CMCON = 7
TRISA = $FF    
TRISB = $00

SYMBOL LED1=PORTB.0
SYMBOL LED2=PORTB.1
SYMBOL LED3=PORTB.2

SYMBOL T1=PORTA.0
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2

A1 VAR BIT : A1 = 1
A2 VAR BIT : A2 = 1
A3 VAR BIT : A3 = 1

B VAR BYTE : B = 1

PORTB = 0       

'**************************** GLAVNA PETLJA ************************************
MAIN:

DO


'---------------------------- PROVJERA TIPKE 1 ---------------------------------
IF T1 = 0 THEN                            ' AKO JE PRITISNUTA TIPKA
    PAUSE 20                              ' DEBOUNCE 20 mS
    IF T1 = 0 THEN                        ' OPET PROVJERI TIPKU
        IF A1 = 1 THEN                    ' I AKO NIJE BILA PRETHODNO PRITISNUTA
            TOGGLE LED1                   ' UPALI ILI UGASI LED
            A1 = 0                        ' I OZNAČI DA JE TIPKA PRITISNUTA
        ENDIF                             '
     ENDIF                                '
ELSE                                      ' AKO TIPKA NIJE PRTISNUTA
    A1 = 1                                ' OZNAČI DA NIJE PRITISNUTA
ENDIF


'---------------------------- PROVJERA TIPKE 2 ---------------------------------
IF T2 = 0 THEN                            ' KAO I KOD TIPKE 1
    PAUSE 20
    IF T2 = 0 THEN
        IF A2 = 1 THEN
            TOGGLE LED2
            A2 = 0
        ENDIF
     ENDIF
ELSE
    A2 = 1
ENDIF


'---------------------------- PROVJERA TIPKE 3 ---------------------------------
IF T3 = 0 THEN                            ' KAO I KOD TIPKE 1
    PAUSE 20
    IF T3 = 0 THEN
        IF A3 = 1 THEN
            TOGGLE LED3
            A3 = 0
        ENDIF
     ENDIF
ELSE
    A3 = 1
ENDIF

'---------------------------- GASENJE LED-ICA ----------------------------------
IF (A1 & A2 & A3) = 0 THEN                ' AKO JE BILO KOJA OD TIPKI PRITISNUTA
    B = B + 1                             ' POVEĆAJ BROJAČ
    IF B => 250 THEN                      ' I AKO JE PROŠLO 5S (20mS * 250 = 5S)
        PORTB = 0                         ' UGASI SVE LED-ICE
        B = 0                             ' I PONIŠTI BROJAČ NA 0
    ENDIF                          
ELSE                                      ' AKO NIJE PRITISNUTA NI JEDNA TIPKA
    B = 0                                 ' PONIŠTI BROJAČ NA 0
ENDIF




LOOP
'*******************************************************************************

Sve radi u glavnoj petlji i ne koristi se funkcija BUTTON, već se debounce radi direktnom provjerom tipke nakon 20ms, ujedno se to koristi i za brojač od 5s, kojim gasiš sve LED-ice. Nije mi se dalo pisat komentare za svaku tipku posebice :roll:
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
code_service
Posts: 11
Joined: 15-01-2013, 09:44

Re: skraceni kurs ucenja picbasica

Post by code_service »

Ovo izgleda lijepo i profesionalnije.. Samo negdje je greška. Kad ubacim u proteus,program ne radi. Jedna dioda samo brzo treperi kad joj je pritisnut pripadajući taster. Ali bez obzira što ne radi, uvidom u ovaj program lijepo vidi se i drugi moguć način..
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Kod sam probao u proteusu i na stvarnom hardware-u, pa pretpostavljam da ti nesto s proteusom nije u redu. Sutra cu zakacit dsn file. :wink:
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Evo obećano:
code_service.rar
(37.16 KiB) Downloaded 268 times
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
code_service
Posts: 11
Joined: 15-01-2013, 09:44

Re: skraceni kurs ucenja picbasica

Post by code_service »

Kad ubacim tvoj dsn file u proteus onda radi. Ali kad idem tvoj fajl kompilirat iz MCS-a onda se onako čudno ponaša.. Već sam i prije primjećivao da mi se nekad poneki primjer nelogično ponaša. Znači nešto mi definitivno ne štima sa MCS-om.. Ja se još ubio pokušavajući skužit di je greška u tvom primjeru..
:azdaja:
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Jesi li izabrao pravi procesor u MCS izborniku?
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
code_service
Posts: 11
Joined: 15-01-2013, 09:44

Re: skraceni kurs ucenja picbasica

Post by code_service »

Dobar je procesor bio izabran. Instalirao sam drugi MCS i sada sve radi.
Hvala na pomoći..
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

pozdrav svima napisao sam kod sa displeima i sa dosta izlaza neradi da bi probao dal je pic ispravan iskucao sam ovo

Code: Select all

DEFINE OSC 20
 ADCON1 = 7
  CMCON = 7 

trisb=%00000000
 portb=%00000000
  portb.6=1
i ni to neradi slucajno sam zakacijo kristal rukom kad ga pipkam ledica sija-nije kontakt al sija samo dok lupkam kristal a moj veliki program samo kad se ubacuje zatinja ledica jer trebe nesto definisati jos? kondenzatori su 22pf ka masi a kristak 20mhz,pic je 16f877a
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

E je si ga napilio, pa pufff na 20 MHz :roll:. Za takvu konfiguraciju moraš kod programiranja postavit Fosc1=1 i Fosc0=0 (HS oscilator). Kondenzatori od kristala prema masi moraju bit cca. 22pF. Uostalom dobro prouči stranice 144, 145 i 146 od datasheet-a (146, 147 i 148 u readeru). Osim toga ne može svaki kristal radit na tom mjestu, izričito kažu da treba bit "parallel cut crystal". Evo ti izvadak:
The PIC16F87XA
oscillator design requires the use of a parallel cut crystal.
Use of a series cut crystal may give a frequency out
of the crystal manufacturer’s specifications.
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

napisao sam veliki program koji mi neradi ima display i izlazne pinove nece da radi pa sam probao sa ledicom sta treba jos od definicija da dodam?
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

Druze sad sam dodao to al to neprolazi compaylergde gresim evo koda:

Code: Select all

DEFINE OSC 20
 ADCON1 = 7 'Turn off ADC
  CMCON = 7 'Turn off comparator
 Fosc1=1
 Fosc0=0
trisb=%00000000
portb=%00000000
portb.6=1
 end

User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Ovako:

Code: Select all

'****************************************************************
'*  Name    : NEMANJA_TEST.PBP                                  *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 19.01.2013                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          : PIC16F877A                                        *
'****************************************************************
#config
 __CONFIG _HS_OSC
#endconfig

DEFINE OSC 20
ADCON1 = 7 'Turn off ADC
CMCON = 7 'Turn off comparator
trisb=%00000000

portb=%00000000

portb.6=1

end
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

na to mi compiler prijavi gresku na ovom redu:
ADCON1 = 7 'Turn off ADC
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Meni kompajlira u redu :roll:
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

syntax eror napiise
ufffff
kolko mi je kod bitan u micro codu kucam
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

prosaosad cu da vidim sta ce da kaze i piku hvala kikindjos
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

kUKINDJOS POMAGAJdefinisao sam ovako al sad lupeta cifre na displeju a u simulatoru radi super
ocvako sam definisao

Code: Select all

#config
     __CONFIG _HS_OSC
    #endconfig

    DEFINE OSC 20
    ADCON1 = 7 'Turn off ADC
    CMCON = 7 'Turn off comparator
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

Jesi li siguran da si sve pospoji kako spada ? Otpore za tipkala ? Mozda kod nesto steka ? Vjerovatno ulaz nije stabilan.
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

Napracvio sam radi!!Hvala
Post Reply