[ pesakms @ 23.09.2010. 23:17 ] @
Pozdrav svima! Hteo sam da napravim brojac za motalicu od 000 do 999, sa ulaznim signalom koji ce brojac ustvari da odbrojava (koji ce biti induktivni davac) sa varijantom podesavanja pre samog pocetka tog odbrojavanja,pa kad dodje do tog podesenog broja da se zaustavi i pic pusti "izlaz" na jedan od pinova koji ce upaliti relej...E sad, semu sam zamisljao sa 6 tastera; 1-start, 2- pauza, 3- stop, 4- jedinice, 5- desetice 6- stote . Tasteri 4,5,6 su za pocetno podesavanje broja na kom treba da se zaustavi odbrojavanje.
Znaci: Upali se uredjaj, podesi broj do kojeg ce da broji brojac (tasterima 4,5 i 6), stisne taster start i brojac odbrojava do podesenog broja. Brojac bi imao i pauzu u smislu -kad se stisne taster pauze (dok brojac broji)da se zaustavi odbrojavanje signala sa induktivca i opet pusti izlaz na isti pin za relej sve dok se oped nestisne start taster kada opet iskljucuje relej i nastavlja se "citanje" tj brojanje ulaznog signala.
Za mene je ovo jako komplikovano pa ako neko ima ideju kako da napisem program tj da mi pomogne oko ovoga bio bih mu jakooooooooo zahvalan!
Imam alll pic programator, a od pic kontrolera imam 16f73, 16f76, 16c77. Hvala unapred svima!
[ NELEwb @ 24.09.2010. 19:07 ] @
nije to nesto komplikovano, mada ne verujem da ce neko da ti napise ceo program . . . postavi semu ako ti nije frka kako si to zamislio da povezes i koji deo programa te zeza . . . pretpostavljam da ces da koristis 3 sedmosegmentna display-a? inace PIC mozes da koristis bilo koji jeftiniji sa nesto vise pinova . . . i program pises u PIC basic-u?
[ pesakms @ 25.09.2010. 11:46 ] @
Da, kontao sam da pisem u Basic-u, posto njega mogu donekle da razumem :).Koristim 3 sedmosegmentna display-a a semu kacim ubrzo! Te pic-e ve imam trenutno zato bih njih koristio
[ pesakms @ 25.09.2010. 15:13 ] @
Evo i seme kako sam otprilike zamislio to.Pic na semi nije onaj koji ja imam ali je isti broj nozica kao 16f73 pa sam ga zato ubacio. Nisam crtao neke stvari koje se podrazumevaju(kvarc,napajanje pic-a...).Taster s7 je impuls sa davaca koji je negativan.
[img][/img]
[ mj7 @ 25.09.2010. 16:08 ] @
Nele, nemoj da svircas, napisi coveku ceo program da se ne muci.xD
[ pesakms @ 25.09.2010. 16:28 ] @
pa ako vec moze.... :) Sala, ne znam kako da postavim petlju za tastere "start", "stop" i "pause" a tek za one pri podesavanju tj na pocetku kada podesavas zeljeni br. do kojeg ce brojac da broji... ju! nemam ideju kako da pocnem uopste!
[ NELEwb @ 26.09.2010. 11:30 ] @
Code:

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : NELE                                              *
'*  Notice  : Copyright (c) 2010 fu*k copyright                 *
'*          : All Rights Reserved                               *
'*  Date    : 9/26/2010                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
b0 var byte
jedinice var byte
desetice var byte
stotine var byte
brojac var word
zadatibr var word
maskiranacifra var byte
i var byte
temp var bit
TRISA=%11111
TRISB=0
TRISC=%00000001
b0=0
brojac=0
temp=0
main:
Button porta.3,1,1,1,B0,0,uvecajjedinice
Button porta.4,1,1,1,B0,0,uvecajdesetice
Button porta.5,1,1,1,B0,0,uvecajstotine
zadatibr = jedinice + desetice*10 + stotine *100
goto prikazibr
Button porta.0,1,1,1,B0,0,start
goto main
uvecajjedinice:
jedinice=jedinice+1
if jedinice>9 then jedinice=0
b0=0
return
uvecajdesetice:
desetice=desetice+1
if desetice>9 then desetice=0
b0=0
return
uvecajstotine:
stotine=stotine+1
if stotine>9 then stotine=0
b0=0
return
prikazibr:
for i = 0 to i = 4 step 1 'ovde sam stavio for da prikaze broj nekoliko puta da bi se cifre bolje videle :)
lookup jedinice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.5
pause 1
low portc.5 
lookup desetice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.6
pause 1
low portc.6 
lookup stotine,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.7
pause 1
low portc.7
NEXT i
return
start:
if brojac<zadatibr then
high portc.4
else
low portc.4
goto main
endif
if portc.0 = 0 AND temp = 1 then brojac = brojac +1
if portc.0 = 1 then temp = 1
if portc.0 = 0 then temp = 0
Button porta.2,1,1,1,B0,0,pauza
Button porta.1,1,1,1,B0,0,stopp
b0=0
goto start
pauza:
low portc.4
Button porta.0,1,1,1,B0,0,start
Button porta.1,1,1,1,B0,0,stopp
b0=0
goto pauza
stopp:
low portc.4
b0=0
'ovde ako hoces ubaci brojac = 0 da ga resetujes
goto main

end

obrati paznju na display kako si povezao, sa ovim adresama u lookup naredbi a ide na RB0, b na RB2 . . . g na RB6. uopste ako prikazuje neke zvrljotine moraces da sam adresiras cifre . . . relej moras da palis preko tranzistora i obavezno stavi diodu da pojede samoindukciju, pretpostavljam da to spada u ono sto nisi nacrtao a podrazumeva se :)

[Ovu poruku je menjao NELEwb dana 26.09.2010. u 12:49 GMT+1]
[ pesakms @ 26.09.2010. 11:53 ] @
HVALA puno! Ne znam kako bih ti se oduzio...tranzistor se podrazumeva kao i dioda :) Hvala jos jednom, nadam se da cu sutra zavrsiti to pa se javljam kako je ispalo!
[ pesakms @ 27.09.2010. 19:16 ] @
NELE, Odradio sam plocicu danas,evo seme kako je na kraju sve vezano(nisam samo na semi prepravio izlaze na 7 segmentni displej,a povezao sam kako si mi i rekao), povezao sve kako treba i kad sam postavio programiran pic 16f76 - nista!
Ne radi nista ni ne reaguje ni na jedan taster!Kad sam video da ne radi probao da iscitam program iz njega ividim da je to- to tj da je dobro predhodno usnimljen.
Probao sam da isprogramiram tako da mi pali -gasi relej i neke delove displeja( sa tim tranzistorom da mu da masu) i kad sam ga stavio na podnozje sve je radilo.
Ne znam u cemu je problem...da li napisani program nije uskladjen sa semom dobro,ili sam pogresno objasnio kako sam zamislio?
Zaboravih jos reci da su 7-segmentni displeji fizicki sa zajednickom katodom,a ne kao na semi sa anodom(mozda je u tome problem?) Nemam pojma, ispratio sam sve vodove na plocici i sve je ok. Pa eto ako moze neka pomoc....Nadam se da negnjavim puno :)


[ foxhunter1 @ 27.09.2010. 21:48 ] @
Rodjo,
Onako kako si ti vezao displej(e) .... veza je za displeje sa zajednickom katodom (bez obzira sto ti je shematska oznaka za displej sa zajednickom anodom) ... znaci to nije problem. Problem je u kodu....
Code:

Button porta.3,1,1,1,B0,0,uvecajjedinice

Ovo je isto kao da je napisano
Code:

if porta.3 = 1 then
  goto uvecajjedinice     ' a ne gosub uvecajjedinice
endif


Prva greska je sto je tebi (prema semi) aktivno stanje tastera = 0, a ne 1 ... tj kad stisnes taster imas logicku nulu, a ne jedinicu. Druga greska je sto je kolega koji je pisao ovaj kod, mislio da je kod komande BUTTON implementirana naredba GOSUB (a ne GOTO), pa je posle svakog LABEL-a gde se iz komande button program preusmerava - stavio RETURN, misleci da ce se izvrsenje programa nastaviti naredbom koja je posle naredbe BUTTON. Aber medjutim, kako je ovo u stvari GOTO, PIC se nece vratiti nazad da izvrsi ispitivanje sledecih tastera, vec ce nastaviti sa izvrsavanjem koda koji se nalazi posle 'Uvecajjedinice:' .

Evo Nele je pokusao da ti pomogne, napisao je kakav-takav kod i verujem da vecina kolega ima volje da pomogne da se kod dotera do kraja. Ali, ne moze se ocekivati ni od koga da nekome napise kod od A-Z, a da taj prethodno nije mrdnuo ni repom .... . Pomoc DA, ali pisanje kompletnog koda (za dzabe) NE!. Neki razvojni put mora da postoji, ne moze se odmah krenuti sa slozenim projektima.

Pozdrav,
za pomoc uvek raspolozen... idemo dalje...
[ mj7 @ 27.09.2010. 22:35 ] @
Vidi covek stvarno napisa program. :)

Evo moje izmene:

Code:

Code:

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : NELE                                              *
'*  Notice  : Copyright (c) 2010 fu*k copyright                 *
'*          : All Rights Reserved                               *
'*  Date    : 9/26/2010                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
b0 var byte
jedinice var byte
desetice var byte
stotine var byte
brojac var word
zadatibr var word
maskiranacifra var byte
i var byte
temp var bit
TRISA=%11111
TRISB=0
TRISC=%00000001
b0=0
brojac=0
temp=0
main:
Button porta.3,0,1,1,B0,1,uvecajjedinice
Button porta.4,0,1,1,B0,1,uvecajdesetice
Button porta.5,0,1,1,B0,1,uvecajstotine
Button porta.0,0,1,1,B0,1,start
goto prikazibr

goto main
uvecajjedinice:
jedinice=jedinice+1
if jedinice>9 then jedinice=0
b0=0
zadatibr = jedinice + desetice*10 + stotine *100
goto prikazibr
uvecajdesetice:
desetice=desetice+1
if desetice>9 then desetice=0
b0=0
zadatibr = jedinice + desetice*10 + stotine *100
goto prikazibr
uvecajstotine:
stotine=stotine+1
if stotine>9 then stotine=0
b0=0
zadatibr = jedinice + desetice*10 + stotine *100
goto prikazibr
prikazibr:
for i = 0 to i = 4 step 1 'ovde sam stavio for da prikaze broj nekoliko puta da bi se cifre bolje videle :)
lookup jedinice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.5
pause 1
low portc.5 
lookup desetice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.6
pause 1
low portc.6 
lookup stotine,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.7
pause 1
low portc.7
NEXT i
goto main
start:
if brojac<zadatibr then
high portc.4
else
low portc.4
goto main
endif
if portc.0 = 0 AND temp = 1 then brojac = brojac +1
if portc.0 = 1 then temp = 1
if portc.0 = 0 then temp = 0
Button porta.2,0,1,1,B0,1,pauza
Button porta.1,0,1,1,B0,1,stopp
b0=0
goto start
pauza:
low portc.4
Button porta.0,0,1,1,B0,1,start
Button porta.1,0,1,1,B0,1,stopp
b0=0
goto pauza
stopp:
low portc.4
b0=0
'ovde ako hoces ubaci brojac = 0 da ga resetujes
goto main

end


Mislim da ima jos neka greska, ali proveri prvo ovako. Pozdrav...
[ NELEwb @ 27.09.2010. 22:46 ] @
@mj7 ko ti rek'o da menjas kod, nemoj da ti dodjem tamo

:)

[ mj7 @ 27.09.2010. 23:21 ] @
@NELEwb, koji si ti saban. xD

Priznaj da si ovo namerno uradio. :)

[ pesakms @ 27.09.2010. 23:35 ] @
Pa verovatno da bi i ja malo se pomucio :) Evo upravo pustio kroz simulator, i gledam...menja stanja non-stop bez pritiskanja tastera....ubacio na plocu kad ono svetle sva tri displeja i nemenja nista na nijedan taster! Neka bar nesto svetli! :)
Ne znam te komande, ne mogu da pohvatam sve tako brzo,a i ovo sto znam naucio sam iz knjiga i sa neta i dobrih ljudi kao sto ste vi!
Izgleda program skace na labele posle provere tastera,tj uopste nesagledava stanje na tasterima, jel moguce?
[ mj7 @ 28.09.2010. 00:13 ] @
Zbog toga, opasan je on.:) Sve je moguce. Za pocetak ovako:

Code:

Code:

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : NELE                                              *
'*  Notice  : Copyright (c) 2010 fu*k copyright                 *
'*          : All Rights Reserved                               *
'*  Date    : 9/26/2010                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
b0 var byte
jedinice var byte
desetice var byte
stotine var byte
maskiranacifra var byte
i var byte
TRISA=%11111
TRISB=0
TRISC=%00000001
b0=0
jedinice=0
desetice=0
stotine=0

main:

Button porta.3,0,1,1,B0,1,uvecajjedinice
Button porta.4,0,1,1,B0,1,uvecajdesetice
Button porta.5,0,1,1,B0,1,uvecajstotine
goto prikazibr


uvecajjedinice:
jedinice=jedinice+1
if jedinice>9 then jedinice=0
b0=0
goto prikazibr

uvecajdesetice:
desetice=desetice+1
if desetice>9 then desetice=0
b0=0
goto prikazibr

uvecajstotine:
stotine=stotine+1
if stotine>9 then stotine=0
b0=0
goto prikazibr

prikazibr:
for i = 0 to i = 4 step 1 
lookup jedinice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.5
pause 1
low portc.5 
lookup desetice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.6
pause 1
low portc.6 
lookup stotine,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.7
pause 1
low portc.7
NEXT i
goto main

end


Prvo da proradi ovo, pa ces dalje lako. Sad ce Nele opet da se zali sto mu menjam kod. xD
[ pesakms @ 28.09.2010. 11:20 ] @
Ispravi me ako gresim,ali mislim da je problem u konfiguraciji ulaza na "a" portu?
Kontam da na pocetku koda gde pise komanda "trisa=%11111" mozda da stavim "trisa=1" (ili je to isto),posto imam osecaj da pic brljavi u smislu kao da mu non stop stiskas sva tri tastera setovanja broja- taster jedinice,desetice,stote...jer displej treperi na sve tri cifre jako brzo,kao da mu se same menjaju vrednosti tj brojevi.Nisam probao u kolu kako se ponasa sa ovim "trisa=1", na poslu sam pa samo razmisljam.... :)
[ foxhunter1 @ 28.09.2010. 12:28 ] @
trisa = %11111 i trisa = 1 ne mogu nikako da budu isto! trisa = %11111 je isto sto i trisa = 31; trisa = 1 je isto sto i trisa = %00000001

Moras malo da citas i data sheets od uC. Po difoltu, kod skoro svih PICova koji imaju AD konvertore, odgovarajuci ulazi za AD konvertore su postavljeni kao analogni. Konkretno kod tvog 16F73 - analogni su ti ulazi na PORTA, bas oni na koje si ti vezao tastere. Da bi ti port A postao 'digitalan' moras da podesis odgovarajuci registar, u ovom slucaju ADCON1. Mozda ce neki simulator i da radi onako kako si ti zamislio, ali in real life - PIC nece sigurno!

ADCON1 = 7 (ili ADCON1 = %00000111) bi trebalo da resi (deo) tvojih problema . Ispod dela koda gde si definisao TRISove, dodaj i ovo!

Pozdrav,



[Ovu poruku je menjao foxhunter1 dana 28.09.2010. u 14:58 GMT+1]
[ pesakms @ 28.09.2010. 16:24 ] @
E sad ide nekako :) dodao ADCON1=7, pored trisa dodao jos jednu "1"-cu, isad kad ga upalim svetli komplet displej!
Tasteri proradili! :)menjaju stanje na displeju (svaki taster menja ono sto i treba da menja) ali brljavi.... menja on svaki put ali jako brzo(ali nije problem) i te promene nikada nebudu ispisane tj ni jedna nelici na broj.Mozda zato sto sam ja krenuo po Neletovom upustvu da vezem displej (b0 na a,b1 na b...)
Tasteri start,stop,pause rade kako i trebaju,samo sto posle stiskanja starta nema nikakvog broja na displeju,a inace relej se i pali i gasi kako bi i trebalo. Gledao sam u labeli "prikazibroj" hex cod pa ga u binarni konvertovao i po meni je ok, tj idu brojevi od 0 do 9. Znaci sam sebi sam vise dosadan sto vam pisem a mogu zamisliti kako je vama ! Stvarno se trudim,prepravljam,ubacujem komande ali ne ide mi nikako, samo zabrljam jos vise.




[Ovu poruku je menjao pesakms dana 28.09.2010. u 17:35 GMT+1]
[ foxhunter1 @ 28.09.2010. 19:02 ] @
Ajd' probaj ovo, pa javi da li ti i sada preskace . Kod pisanja programa gledaj da imas sto vise GOSUB, a sto manje GOTO. Kod je neuporedivo laksi za pracenje i shvatanje, a o dibagovanju da ne govorim. Ovo ti je samo za postavljanje zadatih vrednosti i za prikaz, a nesto ces morati i sam. Ako ti presporo prihvata promene sa tastera, probaj da smanjis konstantu DebCnt.

Code:

Jedinice     var byte
Desetice     var byte
Stotine     var byte
CntJedinice    var    byte    ' brojac stisnutog tastera za jedinice
CntDesetice    var    byte
CntStotine    var    byte
CifZaPrikaz    var    byte
KeyJedPusten    var    bit
KeyDesPusten    var    bit
KeyStotPusten    var    bit
KeyJedStis    var    bit        ' taster za jedinice debaunsovan i kazemo da je stisnut
KeyDesStis    var    bit
KeyStotStis    var    bit

KeyJedinice    var    porta.3
KeyDesetice    var    porta.4
KeyStotine    var    porta.5
KatodaJed    var    portc.5
KatodaDes    var    portc.6
KatodaStot    var    portc.7

    DebCnt    con    3
    True    con    1
    False    con    0
    TRISA = 255        ' svi ulazi
    TRISB = 0        ' svi izlazi
    TRISC=%00000001
    ADCON1 = 7        ' svi digitalni

    clear
    keyjedpusten = true
    keydespusten = true
    keystotpusten = true

Main:

    gosub Debounce
    gosub odluke
    
    cifzaprikaz = jedinice
    gosub prikazibr
    katodajed = true
    pause 5
    katodajed = false
    cifzaprikaz = desetice
    gosub prikazibr
    katodades = true
    pause 5
    katodades = false
    cifzaprikaz = stotine
        gosub prikazibr          ' >>>>>>>>>>> i ovo sam bio ispustio :-)
    katodastot = true
    pause 5
    katodastot = false    
    
    goto main 

Debounce:
    if keyjedinice = 0 then
      cntjedinice = cntjedinice + 1
      else
      cntjedinice = 0
      keyjedstis = false
    endif
    
    if cntjedinice >= debcnt then
      keyjedstis = true
    endif  
    
    if keydesetice = 0 then
      cntdesetice = cntdesetice + 1 
      else
      cntdesetice = 0
      keydesstis = false
    endif
    
    if cntdesetice >= debcnt then
      keydesstis = true
    endif  
    
    if keystotine = 0 then
      cntstotine = cntstotine + 1
      else
      cntstotine = 0
      keystotstis = false
    endif
    
    if cntstotine >= debcnt then
      keystotstis = true
    endif      
      
    return
    
Odluke:
OdlJedinice:
    if keyjedstis = true then
      if keyjedpusten = true then
        keyjedpusten = false
        jedinice = jedinice + 1
        if jedinice > 9 then jedinice = 0
      endif
      else
      keyjedpusten = true      
    endif

OdlDesetice:    
    if keydesstis = true then
      if keydespusten = true then
            keydespusten = false           ' >>>>>>>>> ovo je bilo ispusteno
        desetice = desetice + 1
        if desetice > 9 then desetice = 0
      endif
      else
      keydespusten = true
    endif

OdlStotine:    
    if keystotstis = true then
      if keystotpusten = true then
            keystotpusten = false         ' >>>>>>>>> i ovo je bilo ispusteno!
        stotine = stotine + 1
        if stotine > 9 then stotine = 0
      endif
      else
      keystotpusten = true
    endif
      
    return
    
PrikaziBr:
    'lookup cifzaprikaz, [$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F], portb
        LookUp cifzaprikaz, [$7E,$30,$6D,$79,$33,$5B,$5F,$70,$7F,$7B], PORTB ' ovo ti je za novo vezivanje    
    return                                                                                         ' displeja .. RB0-RB6, G-A

end







[Ovu poruku je menjao foxhunter1 dana 29.09.2010. u 09:25 GMT+1]
[ pesakms @ 28.09.2010. 23:01 ] @
probao, ekran na pocetku miruje na sve tri cifre tj svetle na sva tri displeja iste diodice osim diode na poziciji "F' i "G".Kada stiskam taster za promenu jedinica, desava se promena kad god stisnem,ali ne u vidu broja, sve brka ali menja stanja,Kad stiskam desetice jako brzo se menjaju stanja na segmentu desetica i stotina (zajedno- u isto vreme).
Kda stiskas taster stotina, nista se nedesava.
[ mj7 @ 29.09.2010. 00:35 ] @
Ako si vezao kao sto ti je na novoj semi onda je normalno da brlja. Krenuo si od rb1 i to pogresnim redosledom. a treba da bude na rb0 a ne na rb7. To sto nema broja kad stisnes start moze lako da se resi, ali ajde prvo da ti ispravno prikazuje cifre, to je bitnije. Koji kod si zadnji probao a da je bar malo radio?
[ pesakms @ 29.09.2010. 05:27 ] @
Nasao problem brljanja! pomerio sam komplet izlaze za jedan navise! :) Krenuo sam od rb1 umesto od rb0.Prevezem pa javim sta se desava!
[ foxhunter1 @ 29.09.2010. 06:43 ] @
Pesak,

Da si malo bolje pogledao moj kod, video bi da se kod za desetice i stotine 'malo' razlikuje od koda za jedinice. Propustio sam da resetujem dve varijable. Nisam poslao novi kod, vec sam samo dodao par linija u postojecem kodu i oznacio ih. Takodje nisam isao na osvezavanje displeja za stotine :-( . Probaj sada!

Pozdrav

[Ovu poruku je menjao foxhunter1 dana 29.09.2010. u 09:28 GMT+1]
[ pesakms @ 29.09.2010. 16:13 ] @
foxhunter1
da,da... sad je ok kod! Samo sam ostavio one "stare" adrese za cifre(ispis brojeva)koje su bile prvi put jer sam vec prelemio izlaze na displej i sad sve radi ok sto se tice podesavanja zeljenog broja!
e sad pokusacu u ovu pricu da uklopim ova tri tastera (start,stop i pauzu) kao i davac impulsa koji treba da dostigne zadatu cifru kako bi se iskljucio relej.
[ pesakms @ 29.09.2010. 22:41 ] @
Mj7,
Da i tebi odgovorim, onaj tvoj kod (ispod)radi kad sam prevezao displeje pocevsi sa rb0.

Samo kad biras broj cifre se jako brzo menjaju kad se drzi stisnut taster tako da je gotovo nemoguce izabrati tano neku jedino ako tise neposreci da se zaustavi na toj u trenutku pustanja tastera.Koliko sam gledao one komande trebalo bi povecati "delay" tastera jel? Inace start,stop i pauza rade samo sto nema ocitavanja tj promena broja na displeju kad davac da signal na ulaz rc0
Code:
  '****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : NELE                                              *
'*  Notice  : Copyright (c) 2010 fu*k copyright                 *
'*          : All Rights Reserved                               *
'*  Date    : 9/26/2010                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
b0 var byte
jedinice var byte
desetice var byte
stotine var byte
brojac var word
zadatibr var word
maskiranacifra var byte
i var byte
temp var bit
TRISA=%111111
TRISB=0
TRISC=%00000001
ADCON1=7
b0=0
brojac=0
temp=0
main:
Button porta.3,0,1,1,B0,1,uvecajjedinice
Button porta.4,0,1,1,B0,1,uvecajdesetice
Button porta.5,0,1,1,B0,1,uvecajstotine
Button porta.0,0,1,1,B0,1,start
goto prikazibr
goto main

uvecajjedinice:
jedinice=jedinice+1
if jedinice>9 then jedinice=0
b0=0
zadatibr = jedinice + desetice*10 + stotine *100
goto prikazibr
uvecajdesetice:
desetice=desetice+1
if desetice>9 then desetice=0
b0=0
zadatibr = jedinice + desetice*10 + stotine *100
goto prikazibr
uvecajstotine:
stotine=stotine+1
if stotine>9 then stotine=0
b0=0
zadatibr = jedinice + desetice*10 + stotine *100
goto prikazibr
prikazibr:
for i = 0 to i = 4 step 1  ;da bi se cifre bolje videle :)
lookup jedinice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.5
pause 1
low portc.5 
lookup desetice,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.6
pause 1
low portc.6 
lookup stotine,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],maskiranacifra
portb = maskiranacifra
high portc.7
pause 1
low portc.7
NEXT i
goto main
start:
if brojac<zadatibr then
high portc.4
else
low portc.4
goto main
endif
if portc.0 = 0 AND temp = 1 then brojac = brojac +1
if portc.0 = 1 then temp = 1
if portc.0 = 0 then temp = 0
Button porta.2,0,1,1,B0,1,pauza
Button porta.1,0,1,1,B0,1,stopp
b0=0
goto start
pauza:
low portc.4
Button porta.0,0,1,1,B0,1,start
Button porta.1,0,1,1,B0,1,stopp
b0=0
goto pauza
stopp:
low portc.4
b0=0
brojac=0
goto main
  
end




[Ovu poruku je menjao pesakms dana 30.09.2010. u 00:07 GMT+1]
[ mj7 @ 30.09.2010. 11:23 ] @
Probaj tako, a ako ne uspe ima i drugo resenje.

Sa ovim kodom nece da ocitava na displeju, ali ipak broji i kad dostigne do zeljenog broja iskljucice rele.
[ pesakms @ 01.10.2010. 13:26 ] @
Mislio sam da iskoristim tvoju petlju za tastere u kombinaciji sa kodom sto mi je napisao foxhunter1 samo ne znam kako da izadjem iz te njegovog programa na tvoj sa tasterima.Mozda sa komandom "repeat" na pocetku njegovog programa a "until" na kraju pa onda button start?