|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Čet Jan 31, 2013 4:42 pm Naslov sporočila: |
|
|
Zakaj ne definirate ene spremenljivke
dim prestava as byte
potem pa delite program v dva dela,
prvi del odtipava tipke in daje vsebino v spremenljivko prestava,
drugi del pa vsebino spremenljivke prestava daje na ekran vsakokrat, ko je bil zazna priisk na tipko, potem ko je karkter tipke bil prenešen v spremenljivko prestava?
Mislim, da bi bilo lažje tako. |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Čet Jan 31, 2013 5:20 pm Naslov sporočila: |
|
|
Malo sm popravil program HVALA Sturscu in mi deluje zanima me kako pa lahko v spodnjo vrstico vrinem še en prikazovalnik prestav namrec u buggiju imam dve masine vcasih mi zadnji menjalnik nagaja da bi lahko prikazoval oba menjalnika hkrati? Lcd je pa 16x2
$regfile = "m32def.dat"
$crystal = 8000000
Config Porta = Input
Tipka1 Alias Pina.0
Tipka2 Alias Pina.1
Tipka3 Alias Pina.2
Tipka4 Alias Pina.3
Tipka5 Alias Pina.4
Tipka6 Alias Pina.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
Cursor Off Noblink
Cls
Do
locate 1,1
If tipka1=0 then
Lcd " R PRESTAVA "
elseif tipka2=0 then
Lcd " 1 PRESTAVA "
elseif tipka3=0 then
Lcd " 2 PRESTAVA "
elseif tipka4=0 then
Lcd " 3 PRESTAVA "
elseif tipka5=0 then
Lcd " 4 PRESTAVA "
Elseif Tipka6 = 0 Then
Lcd " 5 PRESTAVA "
else
Lcd " OUT GEAR "
end if
Loop _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Čet Jan 31, 2013 8:39 pm Naslov sporočila: |
|
|
jurcman90 je napisal/a: | Malo sm popravil program HVALA Sturscu in mi deluje zanima me kako pa lahko v spodnjo vrstico vrinem še en prikazovalnik prestav namrec u buggiju imam dve masine vcasih mi zadnji menjalnik nagaja da bi lahko prikazoval oba menjalnika hkrati? Lcd je pa 16x2
$regfile = "m32def.dat"
$crystal = 8000000
Config Porta = Input
Tipka1 Alias Pina.0
Tipka2 Alias Pina.1
Tipka3 Alias Pina.2
Tipka4 Alias Pina.3
Tipka5 Alias Pina.4
Tipka6 Alias Pina.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
Cursor Off Noblink
Cls
Do
locate 1,1
If tipka1=0 then
Lcd " R PRESTAVA "
elseif tipka2=0 then
Lcd " 1 PRESTAVA "
elseif tipka3=0 then
Lcd " 2 PRESTAVA "
elseif tipka4=0 then
Lcd " 3 PRESTAVA "
elseif tipka5=0 then
Lcd " 4 PRESTAVA "
Elseif Tipka6 = 0 Then
Lcd " 5 PRESTAVA "
else
Lcd " OUT GEAR "
end if
Loop |
To ti dela?
Meni ne. |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Čet Jan 31, 2013 8:43 pm Naslov sporočila: |
|
|
Seveda prestavil sem samo porteC na porteB in izbrisal na koncu end. In mi stvar deluje _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
stursc Profesionalec
Pridružen/-a: Pet Feb 2005 14:50 Prispevkov: 109 Kraj: Ravne
|
Objavljeno: Čet Jan 31, 2013 8:44 pm Naslov sporočila: |
|
|
jurcman90 je napisal/a: | zanima me kako pa lahko v spodnjo vrstico vrinem še en prikazovalnik prestav namrec u buggiju imam dve masine vcasih mi zadnji menjalnik nagaja da bi lahko prikazoval oba menjalnika hkrati? Lcd je pa 16x2
|
Potem pa še dodaj 6 stikal in kopiraj "rutino" spodaj.
Drugi podatek pa prebereš na
Locate 2,1
if stikalo7=0 ......
LCD .......
...
Tekst moraš pisati tako "4 PRESTAVA"in toliko presledkov, da ti s tem briše prejšnji prikaz LCD-a
Upam, da boš spravil skupaj
LP, stursc |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Čet Jan 31, 2013 8:54 pm Naslov sporočila: |
|
|
Sedaj pa sploh ne deluje?
$regfile = "m32def.dat"
$crystal = 8000000
Config Porta = Input
Config Portb = Input
Tipka1 Alias Pina.0
Tipka2 Alias Pina.1
Tipka3 Alias Pina.2
Tipka4 Alias Pina.3
Tipka5 Alias Pina.4
Tipka6 Alias Pina.5
Tipka7 Alias Pinb.0
Tipka8 Alias Pinb.1
Tipka9 Alias Pinb.2
Tipka10 Alias Pinb.3
Tipka11 Alias Pinb.4
Tipka12 Alias Pinb.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
Cursor Off Noblink
Cls
Do
Locate 1 , 1
If Tipka1 = 0 Then
Lcd " R PRESTAVA "
Elseif Tipka2 = 0 Then
Lcd " 1 PRESTAVA "
Elseif Tipka3 = 0 Then
Lcd " 2 PRESTAVA "
Elseif Tipka4 = 0 Then
Lcd " 3 PRESTAVA "
Elseif Tipka5 = 0 Then
Lcd " 4 PRESTAVA "
Elseif Tipka6 = 0 Then
Lcd " 5 PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Loop
Do
Locate 2 , 1
If Tipka7 = 0 Then
Lcd " R PRESTAVA "
Elseif Tipka8 = 0 Then
Lcd " 1 PRESTAVA "
Elseif Tipka9 = 0 Then
Lcd " 2 PRESTAVA "
Elseif Tipka10 = 0 Then
Lcd " 3 PRESTAVA "
Elseif Tipka11 = 0 Then
Lcd " 4 PRESTAVA "
Elseif Tipka12 = 0 Then
Lcd " 5 PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Loop _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
stursc Profesionalec
Pridružen/-a: Pet Feb 2005 14:50 Prispevkov: 109 Kraj: Ravne
|
Objavljeno: Čet Jan 31, 2013 11:06 pm Naslov sporočila: |
|
|
jurcman90 je napisal/a: | 'Sedaj pa sploh ne deluje?
$regfile = "m32def.dat"
$crystal = 8000000
Config Porta = Input
Config Portb = Input
Tipka1 Alias Pina.0
Tipka2 Alias Pina.1
Tipka3 Alias Pina.2
Tipka4 Alias Pina.3
Tipka5 Alias Pina.4
Tipka6 Alias Pina.5
Tipka7 Alias Pinb.0
Tipka8 Alias Pinb.1
Tipka9 Alias Pinb.2
Tipka10 Alias Pinb.3
Tipka11 Alias Pinb.4
Tipka12 Alias Pinb.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
Cursor Off Noblink
Cls
Do
Locate 1 , 1
If Tipka1 = 0 Then
Lcd " R PRESTAVA "
Elseif Tipka2 = 0 Then
Lcd " 1 PRESTAVA "
Elseif Tipka3 = 0 Then
Lcd " 2 PRESTAVA "
Elseif Tipka4 = 0 Then
Lcd " 3 PRESTAVA "
Elseif Tipka5 = 0 Then
Lcd " 4 PRESTAVA "
Elseif Tipka6 = 0 Then
Lcd " 5 PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Locate 2 , 1
If Tipka7 = 0 Then
Lcd " R PRESTAVA "
Elseif Tipka8 = 0 Then
Lcd " 1 PRESTAVA "
Elseif Tipka9 = 0 Then
Lcd " 2 PRESTAVA "
Elseif Tipka10 = 0 Then
Lcd " 3 PRESTAVA "
Elseif Tipka11 = 0 Then
Lcd " 4 PRESTAVA "
Elseif Tipka12 = 0 Then
Lcd " 5 PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Loop |
Potem pa probaj tako !!!
Prosim, malo misli zraven
LP, stursc |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Sob Feb 02, 2013 11:05 am Naslov sporočila: |
|
|
Pozdravljeni,
zadeva mi deluje, ker sem tipke prestavil na A port. Zanima me torej zakaj. Mogoče zato ker je na portu A ADC?
Ker smo že pri tipkah me nekaj zanima. Če hočem uporabiti tipko kot števec moram tipko priključiti na portB, ker je tam Timer/counter.
Na portB.3 je Input, torej sem priklopim tipko a ne. Na portb.1 je output. Kakšna je razlika. eden šteje tipko drugi pa dodaja?
Hvala za obrazložitev.
LP |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Sob Feb 02, 2013 11:44 am Naslov sporočila: |
|
|
Prosil bi če se lahko vrnemo na začetek teme, ker mi se vedno ne uspe sprogramerat stikal da delujejo neodvisno ena od druge povrsi ja drugace pa ne. _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
stursc Profesionalec
Pridružen/-a: Pet Feb 2005 14:50 Prispevkov: 109 Kraj: Ravne
|
Objavljeno: Sob Feb 02, 2013 7:04 pm Naslov sporočila: |
|
|
jurcman90 je napisal/a: | Prosil bi če se lahko vrnemo na začetek teme, ker mi se vedno ne uspe sprogramerat stikal da delujejo neodvisno ena od druge povrsi ja drugace pa ne. |
Jaz nevem kako naj ti boljše razložim, zgornja priloga sigurno deluje, nevem pa kaj ti ustvarjaš na svoji testni plošči. Se poslužuješ podatkovnega lista uC-ja, imaš na tipkah PullUp upore. To je verjetno glavni krivec za nedelovanje zgornje priloge.
Malo pokaži v sliki, načrtu kaj ustvarjaš, da bo lažje ugotoviti napako, ker ti sam svoje napake ne najdeš.
LP, stursc |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Sob Feb 02, 2013 7:19 pm Naslov sporočila: |
|
|
To glede lcdja je odlično in deluje in bom tudi ugradil v avto. in se vam se enkrat zahvaljujem.
Želim pa še izdelati simulator prestav tako kakor sem na začetku napisal.
Vsako stikalo je vezano na svoj port ki je defineran kot vhod na čipu.
Čip bi bil vezan na staro usb tipkovnico. Na dve tipki, ki bi jih zvezal na dva izhoda na čipu. Njegovo delo naj bi bilo, da bi preko stikal prepoznal položaj menjalnika in dajal pravilno signal na izhodu. (Kot sinhronski menjalnik. Prestavno ročico povlečeš k sebi in prestavi v višjo prestavo, če ga odrineš pa prestavi v nižjo prestavo.)
Problem je kako čipu povedat da za vsako višjo prestavo naj pošlje signal za polovico sekunde na port D1 oziroma na določeno tipko na tipkovnici za nižjo prestavo pa na port D2 oziroma na drugo določeno tipko. _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Sob Feb 02, 2013 8:14 pm Naslov sporočila: |
|
|
Citiram: | Vsako stikalo je vezano na svoj port ki je defineran kot vhod na čipu.
Čip bi bil vezan na staro usb tipkovnico. Na dve tipki, ki bi jih zvezal na dva izhoda na čipu. |
Daj nariši kaj bi rad, nobeden ne bo ugibal kaj bi ti rad.
Najprej govoriš o sedmih tipkah, dobiš primere programov, potem rečeš da to ne deluje in omenjaš še dve tipki ali pa tipkovnico.
Slika pove več kot tisoč besed.
LP |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Sob Feb 02, 2013 10:01 pm Naslov sporočila: |
|
|
Vidim da na žalost ne znam razložit. No risal pa nebom, ker bom sam še poslabšal stvar.
Imam 6 mikro stikal in zeleno ter rdečo ledico.
Na začetku programa nesme goreti nobena ledica če pa prestavim v rikverc utripne rdeča ledica za polovico sekunde. Prestavim v prvo utripne zelena ledica dvakrat po polovico sekunde. Nato v tretjo utripne zelena za polovico sekunde dam v Četrto ponovno utripne zelena za polovico sekunde dam v peto spet zelena utripne za pol sekunde. Prestavim v nižjo četrto utripne rdeča za pol sekunde itd.. ce pa dam iz tretje v rikverc utripne rdeča štirikrat po pol sekunde.
prestave so pa po vrsti začne se pa v nevtralni R (N) 1 2 3 4 5 _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Ned Feb 03, 2013 9:57 am Naslov sporočila: |
|
|
Jaz bi se zadeve lotil tako:
Najprej bi definiral spremeljivko, prestava
Koda: | dim prestava as integer
|
Vrednost spremenljivke bo enostavno prestava v kateri je menjalnik, bo nula če je izven prestave in bo -1 če je v vzvratni vožnjni (rikverc? bilo nekoč)
Potem bi definiral aliase za vse tipke:
Koda: | vzvratna alias pin..
prosto alias pin..
prva alias pin..
druga alias pin..
tretja alias pin..
cetrta alias pin.. |
Potem bi v zanki odtipaval tipke:
Koda: | do
debounce vzvratna, 0 , vzvratnasr, sub
debounce prosto, 0 , prostosr, sub
debounce prva, 0 , prvasr, sub
debounce druga, 0 , drugasr, sub
debounce tretja, 0 , tretjasr, sub
debounce cetrta,0, cetrtasr, sub
loop |
Potrebujem še delovno spremenljivko, recimo ii
V delovno spremenljivko dam novo stanje prestave:
Koda: | vzvratnasr:
ii = -1
gosub utripanje
return
prostosr :
ii = 0
gosub utripanje
return
in tako naprej še za ostale prestave. |
Potem je potrebno še v podprogrmu utripanje utripati pravo ledico in popraviti vsebino spremenljivke prestava
Koda: | Utripanje:
' v zanki utropamop
do
if I = prestava then exit do
if i > prestava then
' utripni zelena
zelena = 0
waitms 500
zelena = 1
waitms 500
' in popravim vsebino prestava za 1
prestava = prestava + 1
endif
if i < prestava then
' utripni rdeča
rdeča = 0
waitms 500
rdeča = 1
waitms 500
' in popravim vsebino prestava za 1
prestava = prestava -1
endif
' program zapusti zanko, ko je utripanje končano in vsebina prestava pravilna
loop |
|
|
Nazaj na vrh |
|
|
tim98 Novinec
Pridružen/-a: Sob Feb 2013 21:05 Prispevkov: 1 Kraj: kamnik
|
Objavljeno: Ned Feb 03, 2013 11:36 am Naslov sporočila: |
|
|
Tudi mene zanima tale simulator.
Javi mi napako pri
if I = prestava then exit do
If I > Prestava Then
Dopisal sem program nekako takole.
$regfile = "m32def.dat"
Dim Prestava As Integer
Vzvratna Alias Pina0
Prosto Alias Pina1
Prva Alias Pina2
Druga Alias Pina3
Tretja Alias Pina4
Cetrta Alias Pina5
Peta Alias Pina6
Do
debounce vzvratna, 0 , vzvratnasr, sub
debounce prosto, 0 , prostosr, sub
debounce prva, 0 , prvasr, sub
debounce druga, 0 , drugasr, sub
debounce tretja, 0 , tretjasr, sub
Debounce Cetrta , 0 , Cetrtasr , Sub
Debounce Peta , 0 , Petasr , Sub
Loop
Dim Ii As Integer
Vzvratnasr:
ii = -1
gosub utripanje
return
Prostosr:
ii = 0
gosub utripanje
return
Prvasr:
Ii = 1
Gosub Utripanje
Return
Drugasr:
Ii = 2
Gosub Utripanje
Return
Tretjasr:
Ii = 3
Gosub Utripanje
Return
Cetrtasr:
Ii = 4
Gosub Utripanje
Return
Petasr:
Ii = 5
Gosub Utripanje
Return
Utripanje:
' v zanki utropamop
Do
if I = prestava then exit do
If I > Prestava Then
' utripni zelena
zelena = 0
waitms 500
zelena = 1
waitms 500
' in popravim vsebino prestava za 1
prestava = prestava + 1
endif
if i < prestava then
' utripni rdeča
rdeča = 0
waitms 500
rdeča = 1
waitms 500
' in popravim vsebino prestava za 1
prestava = prestava -1
endif
' program zapusti zanko, ko je utripanje končano in vsebina prestava pravilna
loop |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|