Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

SIMULATOR MENJALNIKA
Pojdi na stran Prejšnja  1, 2, 3, 4  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Čet Jan 31, 2013 4:42 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Čet Jan 31, 2013 5:20 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
marc
Profesionalec


Pridružen/-a: Ned Maj 2009 10:08
Prispevkov: 243
Kraj: Polzela

PrispevekObjavljeno: Čet Jan 31, 2013 8:39 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Čet Jan 31, 2013 8:43 pm    Naslov sporočila: Odgovori s citatom

Seveda prestavil sem samo porteC na porteB in izbrisal na koncu end. In mi stvar deluje
_________________
LP.Pavlic
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Profesionalec


Pridružen/-a: Pet Feb 2005 14:50
Prispevkov: 109
Kraj: Ravne

PrispevekObjavljeno: Čet Jan 31, 2013 8:44 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Čet Jan 31, 2013 8:54 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Profesionalec


Pridružen/-a: Pet Feb 2005 14:50
Prispevkov: 109
Kraj: Ravne

PrispevekObjavljeno: Čet Jan 31, 2013 11:06 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
marc
Profesionalec


Pridružen/-a: Ned Maj 2009 10:08
Prispevkov: 243
Kraj: Polzela

PrispevekObjavljeno: Sob Feb 02, 2013 11:05 am    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Sob Feb 02, 2013 11:44 am    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Profesionalec


Pridružen/-a: Pet Feb 2005 14:50
Prispevkov: 109
Kraj: Ravne

PrispevekObjavljeno: Sob Feb 02, 2013 7:04 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Sob Feb 02, 2013 7:19 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Sob Feb 02, 2013 8:14 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Sob Feb 02, 2013 10:01 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Ned Feb 03, 2013 9:57 am    Naslov sporočila: Odgovori s citatom

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

Koda:
dim ii as integer


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
Poglej uporabnikov profil Pošlji zasebno sporočilo
tim98
Novinec


Pridružen/-a: Sob Feb 2013 21:05
Prispevkov: 1
Kraj: kamnik

PrispevekObjavljeno: Ned Feb 03, 2013 11:36 am    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran Prejšnja  1, 2, 3, 4  Naslednja
Stran 2 od 4

 
Pojdi na:  
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