|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
elektr@nik Član
Pridružen-a: Sre 11 Maj 2016 22:07 Prispevkov: 91 Aktiv.: 0.92
|
Objavljeno: Čet Maj 12, 2016 11:56 pm Naslov sporočila: Kako prižigati s 4 tipkami 4 različne programe z attiny2313 |
|
|
Mene zanima kako sprogramirati čip attiny2313 da bodo 4 tipke preklapljale med 4imi različnimi programi. Program bi pisal v Bascom AVR
Za pomoč se vam že v naprej zahvaljujem. |
|
Nazaj na vrh |
|
|
lojzek Član
Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3361 Aktiv.: 16.84
|
Objavljeno: Pet Maj 13, 2016 6:07 am Naslov sporočila: |
|
|
Za to obstaja toliko variant, kolikor je programerjev:)
Nisem Bascom-aš, ampak preden ti kdo poda odgovor, poskusi natančneje vprašat oz razložit, kaj hočeš.
Npr meni je nejasno, če želiš imeti "fizično" 4 različne programe v uC. tako kot bi na začetku programa imel izbiro, v kateri program naj skoči in potem ostane v tem programu za večno (no ja dokler uC ne ugasneš in spet prižgeš) .
Ali pa želiš, da ko pritisneš tipko, uC izvede nek program (podprogram) in se vrne nazaj v glavni program.
No ja, saj princip je za oboje enak...
Nekje na začetku preverjaš, katera tipka je pritisnjena. Toliko časa, dokler ni pritisnjena. Potem pa skočiš tja, kamor ti pritisnjena tipka kaže. To je grob opis moje prve domneve.
Druga domneva gornji opis dopolnjuje v tem, da med čakanjem na pritisk tipke uC počne še nekaj drugega. Ko je tipka pritisnjena, pa skoči tja, kamor tipka kaže. Tam v podprogramu izvede kar mora in se potem vrne nazaj na preverjanje tipk (+ ostalo, kar takrat izvaja). |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3640 Aktiv.: 16.91
|
Objavljeno: Pet Maj 13, 2016 6:55 am Naslov sporočila: |
|
|
Morda pa je mislil tako, da tipko pritisne za trenutek, izbran program (zaporedje) se mora pa nato izvajati ves čas, dokler ne izbere drugega.
V tem primeru je shema programa taka:
Zanka:
Preveri se stanje tipk:
Če je pritisnjena tipka X, se v stanje spremenljivke S shrani vrednost med 0 in 3 (lahko tudi 1 do 4, ob zagonu je pa 0, dokler se prvič ne pritisne neke tipke).
Če ni nič pritisnjeno, se ohrani dotedanja vrednost spremenljivke S.
Preveri se stanje spremenljivke S:
Glede na njeno vrednost se izvede izbran podprogram (zaporedje).
Ko je zaporedje dokončano, se skoči na začetek Zanke in vse skupaj se ponavlja. Po potrebi se z nekim števcem ali časom omeji število ponovitev oziroma trajanje zanke (spremenljivka S spet dobi vrednost 0). _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 612 Aktiv.: 4.38 Kraj: Vrhnika
|
Objavljeno: Sob Maj 14, 2016 10:03 am Naslov sporočila: |
|
|
Ali hočeš da ob enkratnem pritisku se izvaja določen program ali hočeš da je treba tipko tiščati kadar se izvaja določen program? |
|
Nazaj na vrh |
|
|
elektr@nik Član
Pridružen-a: Sre 11 Maj 2016 22:07 Prispevkov: 91 Aktiv.: 0.92
|
Objavljeno: Sre Jun 01, 2016 8:25 pm Naslov sporočila: |
|
|
Jaz sem mislil da ko pritisneš prvo tipko se izvaja prvi program in izklopi druge 3 in ko pritisneš drugo tipko se vključi drugi program in izklopi druge 3 programe itd. |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3640 Aktiv.: 16.91
|
Objavljeno: Čet Jun 02, 2016 7:30 am Naslov sporočila: |
|
|
Kakšno je sploh tvoje poznavanje Bascoma?
Poznaš osnovno strukturo programa in sintakso?
Tole si že prebral?
Kako naj bi potekal tvoj program, sem ti že zgoraj opisal. S tipkami nastavljaš vrednost spremenljivke, vse ostalo v programu pa se izvaja v odvisnosti od te vrednosti.
Za osnovo poišči en celoten, povsem delujoč in dovolj obširen program, ki vsebuje tipke, podprograme, števce, ... nato pa vrstice nadomeščaj s svojimi.
Jaz ne delam z Bascomom, zato lahko le z besedami opišem program.
Koda: |
Do
pBereTipke ; skoči prebrat tipke in se vrne z znano novo vrednostjo spremenljivke tipk St
If St=1 , kliče podprogram pZap1
If St=2 , kliče podprogram pZap2
If St=3 , kliče podprogram pZap3
If St=4 , kliče podprogram pZap4
Loop
;;; podprogrami
pBereTipke
If pinTipka1 , St = 1
If pinTipka2 , St = 2
If pinTipka3 , St = 3
If pinTipka4 , St = 4
Return
pZap1 ; zaporedje 1
izhod1 = 1
Wait 1
izhod2 = 0
Wait 1
Return
pZap2 ; zaporedje 2
izhod1 = 1
Wait 2
izhod1 = 0
Wait 2
Return
pZap3
izhod1 = 1
Wait 1
izhod1 = 0
Wait 2
Return
pZap3
izhod1 = 1
Wait 1
izhod1 = 0
Wait 3
Return
|
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
Obelix Član
Pridružen-a: Pon 19 Maj 2008 13:59 Prispevkov: 1865 Aktiv.: 9.53 Kraj: Maribor
|
Objavljeno: Čet Jun 02, 2016 8:27 am Naslov sporočila: |
|
|
elektr@nik je napisal/a: |
Jaz sem mislil da ko pritisneš prvo tipko se izvaja prvi program in izklopi druge 3 in ko pritisneš drugo tipko se vključi drugi program in izklopi druge 3 programe itd. |
Razloži podrobneje kaj naj bi tvoj program (oiroma štirje programi) počel. Ne vidim smisla oziroma potrebe po štirih programih. Čeprav gre najbrž samo za nesporazum o tem, kaj sploh je "program". |
|
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: 127 dni
Powered by phpBB © 2001, 2005 phpBB Group
|