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 

Tipka in AVR

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko11
Profesionalec


Pridružen/-a: Ned Jan 2004 18:00
Prispevkov: 112
Kraj: Ponikve

PrispevekObjavljeno: Čet Okt 02, 2008 12:34 pm    Naslov sporočila: Tipka in AVR Odgovori s citatom

Pozdrav

V Bascom AVR sem napisal spodnjo proceduro za Mini Pin, pa ko pritisnem eno od Tipk se na LCD-ju izpiseti obe vrstici.

Moralo bi se, ko pritisnem Tipko1 izpisati Vrsta 1, ko pa pritisnem Tipko 2, pa vrsta 2, ali obratno.

kaj delam narobe?


Koda:
........
.......

Do

if Pind.1 = 0 then    'Tipka1
   Locate 1,1 : LCD "Vrsta 1"
end if

if Pind.2 = 0 then  'Tipka2
   Locate 2,1 : LCD "Vrsta 2"
end if

loop
end


_________________
Kdor visoko leta, daleč vidi.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
lbozo
Profesionalec


Pridružen/-a: Sre Jan 2006 14:24
Prispevkov: 75
Kraj: Ljubljana

PrispevekObjavljeno: Čet Okt 02, 2008 1:53 pm    Naslov sporočila: Odgovori s citatom

Pobriši lcd predno kaj napišeš.
_________________
Lep pozdrav, Božo
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Profesionalec


Pridružen/-a: Ned Jan 2004 18:00
Prispevkov: 112
Kraj: Ponikve

PrispevekObjavljeno: Čet Okt 02, 2008 5:02 pm    Naslov sporočila: Odgovori s citatom

Mi je uspelo rešit problem.

Koda:
If Pind.0 = 0 Then
Waitms 20
   If Pind.0 = 0 Then
      Locate 1,1 : LCD "Vrsta 1"
   End If
End If


Isto bi bilo če bi uporabil debounce ukaz.

Še vedno pa ne vem zakaj pride do tega, da se izpišeta obe vrstici, čeprav sem pritisnil samo eno tipko.

Lp,marko

_________________
Kdor visoko leta, daleč vidi.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
plutonij210
Novinec


Pridružen/-a: Ned Avg 2008 17:59
Prispevkov: 7

PrispevekObjavljeno: Čet Okt 02, 2008 5:40 pm    Naslov sporočila: Odgovori s citatom

Ker ne pobrišeš LCD-ja

Koda:

If Pind.0 = 0 Then
Waitms 20
   If Pind.0 = 0 Then
      Cls
      Locate 1,1 : LCD "Vrsta 1"
   End If
End If


Pa tudi v tej kodi, ko boš enkrat stisnil tipko, bo izpis na LCDju gorel tako dolgo (pa tudi če boš tipko spustil), dokler ne boš stisnil druge, ki bo LCD pobrisala. Za ta namen pa daj še med obema IF stavkoma en Cls.

EDIT: Tole bo še boljše:
Koda:

Do
Cls
If Pind.0 = 0 Then
Waitms 20
   If Pind.0 = 0 Then
      Locate 1,1 : LCD "Vrsta 1"
   End If
End If
Cls
If Pind.1 = 0 Then
Waitms 20
   If Pind.1 = 0 Then
      Locate 2,1 : LCD "Vrsta 2"
   End If
End If

Loop
End


V prejšnji kodi se bo, če boš držal tipko LCD non-stop brisal in pisal, in to vse bo skupaj tako hitro, da ne boš videl nič - mislil boš, da je LCD prazen.
V tej novi kodi pa se LCD pobriše šele, ko pride iz IF stavka. Če torej držiš tipko se sploh ne bo pobrisal, dokler je ne boš spustil.

LP
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Jure
Urednik


Pridružen/-a: Pon Jan 2004 12:51
Prispevkov: 2132
Kraj: Ljubljana

PrispevekObjavljeno: Čet Okt 02, 2008 6:12 pm    Naslov sporočila: Odgovori s citatom

Marko,

mislim da bi moral Pind postaviti na logično 1:

Koda:
Do
Pind=255
.
.
.
Loop


Lp
Jure
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
plutonij210
Novinec


Pridružen/-a: Ned Avg 2008 17:59
Prispevkov: 7

PrispevekObjavljeno: Čet Okt 02, 2008 8:37 pm    Naslov sporočila: Odgovori s citatom

Točno, a imaš zunanje pull-up upore na tipkah? Če ne, potem je to, kar je rekel Jure potrebno.
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 -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Stran 1 od 1

 
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