 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
jjakob Član

Pridružen-a: Pet 19 Nov 2004 14:12 Prispevkov: 1348 Aktiv.: 5.69
|
Objavljeno: Sre Jul 23, 2008 2:58 pm Naslov sporočila: |
|
|
Napisal si, da naj ti samo pomagamo pri iskanju napake, torej je tukaj en namig - Malce pomisli, kaj hočeš z IFi doseči ter jih pravilno napiši. Tukaj je več napak. |
|
Nazaj na vrh |
|
 |
tiger Član

Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1161 Aktiv.: 4.90
|
Objavljeno: Sre Jul 23, 2008 2:59 pm Naslov sporočila: |
|
|
Hi
Prvi IF stavek ima prioriteto nad vsemi ostalimi in tako naprej, vendar v tem primeru to ne bo šlo. Obe tipki morata biti neodvisni.
LP |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Sre Jul 23, 2008 3:19 pm Naslov sporočila: štetje z tipko (bascom avr) |
|
|
ne sešteva in ne odšteva |
|
Nazaj na vrh |
|
 |
jjakob Član

Pridružen-a: Pet 19 Nov 2004 14:12 Prispevkov: 1348 Aktiv.: 5.69
|
Objavljeno: Sre Jul 23, 2008 8:11 pm Naslov sporočila: |
|
|
Si pogledal program_erjev odgovor na prejšnji strani? Če bi malce premislil, bi najverjetneje ugotovil, da dela, ampak ne pravilno, saj program misli, da sta obe tipki pritisnjeni ter istočasno sešteva in odšteva rezultat
Ti imaš tipke priključene med pine mikrokontrolerja in Vcc (nestandardno), zato jih odklopi z Vcc in jih priključi med pin in maso. Tako bo stanje na vhodu mikrokontrolerja ob pritisku tipke 0, ter bo program pravilno deloval. |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Sre Jul 23, 2008 8:29 pm Naslov sporočila: štetje z tipko (bascom avr) |
|
|
to sem videl ja, in tudi spremenil.
tako da program je sedaj takšen
Koda: |
Dim A As Byte
Config Pina.0 = Input
Config Pina.1 = Input
Cls
Cursor Off
Locate 1 , 1 : Lcd " Stetje s tipko "
A = 0
Do
Porta.0 = 1
Porta.1 = 1
If Pina.0 = 1 Then
Waitms 20
If Pina.0 = 0 Then
Gosub Stetje
End If
End If
If Pina.1 = 0 Then
Waitms 20
If Pina.1 = 1 Then
Gosub Odstetje
End If
End If
Loop
Stetje:
Incr A
Locate 2 , 5 : Lcd A
Return
Odstetje:
Decr A
Locate 2 , 5 : Lcd A
Return
End |
|
|
Nazaj na vrh |
|
 |
eddie Član

Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 723 Aktiv.: 3.05 Kraj: Severna primorska
|
Objavljeno: Sre Jul 23, 2008 9:34 pm Naslov sporočila: |
|
|
Tale del:
Koda: |
If Pina.0 = 0 Then
Waitms 20
If Pina.0 = 0 Then
Gosub Stetje
End If
End If
|
Vsakokrat narobe popravljaš!
V tvojem primeru naj bi izgledal takole:
Koda: |
If Pina.0 = 1 Then
Waitms 20
If Pina.0 = 1 Then
Gosub Stetje
End If
End If
|
In še pomen: prvi if stavek preverja, če je tipka pritisnjena, ko detektira pritisnjeno tipko pride na vrsto zakasnitev in nato še enkrat preverjanje ali je tipka pritisnjena.Tako se znebiš kratkotrajnih motenj ("špic") in odskakovanju kontaktv tipke.
In tudi tale del nekaj naredi:
Koda: |
Porta.0 = 1
Porta.1 = 1
|
Naprej pa ugotavljaj sam.
Lp |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Sre Jul 23, 2008 9:54 pm Naslov sporočila: štetje z tipko (bascom avr) |
|
|
vem da delam napake, še nekaj časa jih bom, ker sem se komaj začel učiti. z mikrokontrolerji do pred dveh tednov sploh nisem mel opravka, dokler si nisem naročil testne plošče. učim se pa zato ker me zanimajo. pa če gdaj kakšno oslarijo ven butnem se opravičujem.
če mam tukaj tak kot si mi rekel številke samo letijo.
Koda: |
If Pina.0 = 1 Then
Waitms 20
If Pina.0 = 1 Then
Gosub Stetje
End If
End If
je to mogoče zato da ko pritisnem tipko se proži na logično 1 ?
porta.0 = 1
porta.1 = 1
|
|
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 23, 2008 10:27 pm Naslov sporočila: |
|
|
Glej, ti zaznavaš, če je pin na 1, vrstico pred tem pa ga programsko postaviš na 1!
Torej, tipko veži med določen pin in GND!
1. Programsko daj port na 1
2. Zaznavaj, če je tipka na 0.
Če tipke ne boš stisnil, bo vhod ostal na 1, če pa ga boš stisnil, pa ga bo vrglo na 0.
Naredil pa sem eno napako:
Koda: |
Porta.0 = 1
Porta.1 = 1
|
To kodo sem dodal v glavno zanko, kar je NAROBE. Oprosti, komaj zdaj sem pogruntal.
PORTA.0 = 1 daj v subrutino Stetje, pod Incr A
PORTA.1 = 1 pa daj v subrutino Odstetje, pod Decr A _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
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 Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|