BASCOM tlacitko1

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
popopepe
Příspěvky: 553
Registrován: 26 říj 2005, 00:00

#31 Příspěvek od popopepe »

Config Porta.7 = Input
Config Portd.7 = Input
Pina.7 = 1
Pind.7 = 1

Dim Levetlacitko As Bit
Dim Pravetlacitko As Bit



Do
Levetlacitko = Pina.7
Pravetlacitko = Pind.7

If Pravetlacitko = 0 Then
Locate 1 , 1
Lcd "prave"
Locate 2 , 1
Lcd " "
End If

If Levetlacitko = 0 Then
Locate 2 , 1
Lcd "leve"
Locate 1 , 1
Lcd " "
End If

Locate 3 , 1
Lcd Levetlacitko ; Pravetlacitko

Loop
End

Nefunguje?
Edit: upravena ta smyčka
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#32 Příspěvek od Andrea »

Nefunguje, dyť v té smyčce vůbec nečteš stav těch tlačítek. :roll:
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#33 Příspěvek od michalino »

ANDREO...

Máte pravdu....je to tak...takto to funguje...

ale já teď potřebuju zaměnit ty tlačítka....

aby tlačítko A dělalo funkci B a naopak....

a to nejde, když se dá to co jste psal do smyčky...
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#34 Příspěvek od Andrea »

michalino píše:ANDREO...

Máte pravdu....je to tak...takto to funguje...

ale já teď potřebuju zaměnit ty tlačítka....

aby tlačítko A dělalo funkci B a naopak....

a to nejde, když se dá to co jste psal do smyčky...

Hele ty jeden blbečku, už jsem ti 3x psala, že jsem ta Andrea! :evil:
Uživatelský avatar
popopepe
Příspěvky: 553
Registrován: 26 říj 2005, 00:00

#35 Příspěvek od popopepe »

Michalino, možná to máš nějak promakané, ale jak budeš psát normální znaky na displej, který je vzhůru nohama? Budeš si všechny znaky definovat sám?
Když napíšeš AHOJ, tak si to obrať vzhůru nohama - moc čitelné to nebude...
Nebo to bude něco jiného?
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#36 Příspěvek od michalino »

Andreo, pardon...

Popopepe, jen kurzor se tak má pohybovat....písmena to je jasné...ale při představě grafického displeje to zavání možností dělat hry, hlavolamy atd...

To je zatím ale představa, které brání právě tento problém tlačítek :(
Uživatelský avatar
popopepe
Příspěvky: 553
Registrován: 26 říj 2005, 00:00

#37 Příspěvek od popopepe »

A nemůže ten problém být jen v tom, že na to jdeš od začátku divně?
Musíš mít nějakou informaci, na základě které poznáš, zda je displej normálně či vzhůru nohama.
Pak už jen odskočíš do sekce, která bude řešit už konkrétní problém - pohyb kurzoru na základě tlačítek. A stav těch tlačítek budeš sledovat v sekci, ke které patří.
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#38 Příspěvek od michalino »

Je to možné Popopepe, sám víte, jak tady zčínám a snažím se po kousíčkách se nějakého výsledku dopídit...než dojdu k nějakým hrám , potrvá to, takže teď řeším právě ty tlačítka....

myslel jsem si, že to bude jednoduchá úloha, ale není..
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#39 Příspěvek od Andrea »

Dyť je to stupidní, stačí do té smyčky místo

Levetlacitko = Pina.7
Pravetlacitko = Pind.7

dát

if a=1 then
Levetlacitko = Pina.7
Pravetlacitko = Pind.7
else
Levetlacitko = Pind.7
Pravetlacitko = Pina.7
end if
Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 00:00

#40 Příspěvek od AB1 »

myslel jsem si, že to bude jednoduchá úloha, ale není..

Opravdu, Michalino, po deseti měsících studia Bascomu je pro tebe těžká úloha přehodit dvě proměnné?
Potom se obávám že, při všem respektu, než se dostaneš ke grafickým displejům a hrám, tak Atmely už se třeba nebudou vyrábět.

Zkus toto

Kód: Vybrat vše

Do
   Levetlacitko = Pina.7
   Pravetlacitko = Pind.7

   If Pinb.7 = 1 Then Swap Levetlacitko , Pravetlacitko
   ...
   ...


Edit:
Andrea mne předběhla s tímtéž
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#41 Příspěvek od michalino »

To ano ANDREA, to je mi jasné..

ale díky tomu, že se tam používá BIT..nevím, jak to mám přesně vysvětlit...

se musí pořád v té smyčce ten bit nastavovat a nemůžu hlídat délku stisknutí, tak nějak mi prostě připadá, že ten bit znesnadňuje hlídat to tlačítko
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#42 Příspěvek od michalino »

Prosím Vás o vystvětlení...

S tím BIT to ale nefunguje tak, že když stisknu tlačítko, zahájím nějakou funkci a když ho pustím, tak ta funkce skončí...

to funguje tak, že stisknu tlačítko, zahájím funkci ....ale jak pustím tlačítko, stejně funkce neskončí, protože to skončí, až když znovu najede do ... loop a když se načtou stavy tlačítek... tak mi to teď přijde...

nemůžu hlídat délku stisknutí tak jako u normálně řešených tlačítek bez BIT, tedy pouze tlacitko alias portd5 třeba...

dá se toto nějak řešit (bez přerušení)? Nebo to BIT délku stisku řešit neumí?

děkuji
Uživatelský avatar
popopepe
Příspěvky: 553
Registrován: 26 říj 2005, 00:00

#43 Příspěvek od popopepe »

Dim XXX as bit znamená :
Dimension XXX as bit
česky:
velikost místa pro XXX nastav na hodnotu bit, nebo-li přiděl v paměti proměnných místo na hodnotu o velikosti bit ( může nabývat hodnot 1 nebo 0).
Klidně si ta tlačítka nadeklaruj jako byte, ale stejně budou mít hodnotu pouze 00000000 nebo 00000001.
Jinak bit nic nedělá ani netestuje. Je to pouze rozměr, stejně jako byte, word, integer...
Uživatelský avatar
popopepe
Příspěvky: 553
Registrován: 26 říj 2005, 00:00

#44 Příspěvek od popopepe »

Každý procesor pracuje pouze jako rychlý vykonavatel instrukcí. Bude dělat, co mu program řekne.
Když běží nějaká smyčka (do..loop) a v ní se testují nějaké podmínky, tak podle těch podmínek se pak provádí následná akce. Neboli podmíněné větvení programu. Až se provede to co bylo naprogramováno jako reakce na tu podmínku, tak se buď pokračuje dál, nebo se můžeš vrátit na začátek, či někam jinam. Například skokem.
Ale cos tím má společného bit v deklaraci nechápu..
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#45 Příspěvek od michalino »

Popopepe, děkuji za trpělivost.

už nechci psát hlouposti, jdu o tom více načíst..protože tak to můžou být opravdu bludy, je toho tady napsáno určitě víc než dost i příklady, zítra budu studovat, děkuji všem !!

Zvlášť POPOPEPE
Naposledy upravil(a) michalino dne 14 čer 2010, 23:17, celkem upraveno 1 x.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“