skraceni kurs ucenja picbasica

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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   


    
       
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

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 !
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

koji je kontroler?
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 »

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                                    
Jesi li mislio ovako?
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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

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                                    


    
       
Počeo sam pomalo shvaćat tvoj način izražavanja. Priznajem, nije bilo lako. :lol: :lol:
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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.
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

UUu to mi svi nadju za nacin izrazavanja hehe a ja mislim da nisam komplikovan hvala hvala sto mi pomazes na ovom projektu
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 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 :wink:
https://www.dropbox.com/s/5fu2yus6t6w0miv/Ivan.rar
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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

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?
:lol:
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

ivan malesevic wrote:koji je kontroler?
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 doso ;)
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

@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
ivan malesevic
Penjem se :)
Penjem se :)
Posts: 80
Joined: 10-11-2012, 15:02

Re: skraceni kurs ucenja picbasica

Post by ivan malesevic »

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
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

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
Hvala !
Ah u datasheetu je lijepo nacrtana tablica sa svime , mislim da je negjde oko 120 strane.
Hvala jos jednom.
Post Reply