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


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.51
|
Objavljeno: Čet Apr 20, 2006 6:51 pm Naslov sporočila: |
|
|
Seveda, prav imas, tisto je moja napaka - pisal sem na hitro preden sem sel ven dokler je se bilo lepo vreme ... bo drugic boljse. Little-endian. |
|
Nazaj na vrh |
|
 |
snoopy Član


Pridružen-a: Ned 11 Maj 2003 1:17 Prispevkov: 230 Aktiv.: 0.97 Kraj: Radovljica
|
Objavljeno: Čet Apr 20, 2006 8:17 pm Naslov sporočila: |
|
|
Sokrat sem probal danes tvoj predlog. Dela . vendar ne zaznava tipke vedno.
Sem napisal da skenira samo 3 tipke in ko zazna izpiše na LCD.
Kaka ideja kje kiksam.
Koda:
Koda: |
if (((BeriTipke() & 0x01 ) != (stanje & 0x01 )) & ((stanje & 0x01 ) == 0))
{
Clear_LCD();
lcd_gotoxy(1,1);
printf(lcd_putc, " Stisnil si ");
lcd_gotoxy(0,0);
printf(lcd_putc, " Tipko 1");
}
if ((BeriTipke() & 0x02 ) != (stanje & 0x02 )) {
Clear_LCD();
lcd_gotoxy(1,1);
printf(lcd_putc, " Stisnil si ");
lcd_gotoxy(0,0);
printf(lcd_putc, " Tipko 2");
}
if ((BeriTipke() & 0x04 ) != (stanje & 0x04 )) {
Clear_LCD();
lcd_gotoxy(1,1);
printf(lcd_putc, " Stisnil si ");
lcd_gotoxy(0,0);
printf(lcd_putc, " Tipko 4");
}
stanje = BeriTipke(); |
Nazadnje urejal/a snoopy Čet Apr 20, 2006 9:43 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.51
|
Objavljeno: Čet Apr 20, 2006 9:09 pm Naslov sporočila: |
|
|
Ce odmislim, da nimas debounca, potem ne vidim nobene ocitne napake - kaj sploh mislis s tem, da "ne zaznava tipke vedno" ?
Tvoja koda registrira spremembo od trenutka, ko se nastavi spremenljivka stanje. Ce je pritisk tipke prekratek, da bi ga koda zaznala (v najslabsem primeru je to cas, ki je potreben od konca zanke do tretjega if-a), potem ga seveda ne bo zaznala.
Aha, pa se to: pri drugi in tretji tipki ti manjka del kode in bi zato moral dobiti spremembo tako od pritisku kot spustu tipke. |
|
Nazaj na vrh |
|
 |
snoopy Član


Pridružen-a: Ned 11 Maj 2003 1:17 Prispevkov: 230 Aktiv.: 0.97 Kraj: Radovljica
|
Objavljeno: Čet Apr 20, 2006 9:33 pm Naslov sporočila: |
|
|
Sem dodal zakasnitev po zajemanju statusa, sedaj dela .
Zgleda je prehitro tekel program, in ni vedno zaznal razlike med statusom in branjem tipke.
PS kako moraš vpisat kodo za program , da jo obarva zeleno? |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.51
|
Objavljeno: Čet Apr 20, 2006 9:40 pm Naslov sporočila: |
|
|
1: program bi sicer lahko napisal se nekoliko manj neucinkovito z uporabo dodatne spremenljivke (tako bi bil interval preverjanja vsakic enako dolg, ne glede na to katero tipko preverjas oziroma kako dalec v tem delu kode si ze prisel), njej bi pripisal vredniost BeriTipke() na vrhu zanke, spremenljivki stanje pa bi pripisal vrednost te nove spremenljivke (in ne vec BeriTipke() ) na dnu zanke. Vse drugo ostane enako, v vseh if-ih pa seveda klic BeriTipke() nadomestis s to novo spremenljivko.
2: uporabi [code] UBB tag. Le-tega lahko dodas rocno (natipkas), ali pa relevantni del teksta oznacis z misko ali tipkovnico (shift + premikaj kurzor) in pritisnes gumbek Code zgoraj (desno od gumbov za Bold, Italic, itd.). |
|
Nazaj na vrh |
|
 |
AlesH Član

Pridružen-a: Pon 20 Mar 2006 21:20 Prispevkov: 16 Aktiv.: 0.07
|
Objavljeno: Sob Apr 29, 2006 11:12 pm Naslov sporočila: |
|
|
Citiram: |
V kodi so rutine za izpis na grafični LCD. Če koga zanima, lahko objavim tudi to... |
MarE69 prosil bi, ce lahko objavis svoje funkcije za GLCD. Zanimajo me predvsem osnovne: inicializacija, risanje tocke, pisanje texta... Sam sem sicer nekj pisal vendar ne deluje. Hvala. |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.84 Kraj: prekmurje
|
Objavljeno: Čet Dec 17, 2009 9:41 pm Naslov sporočila: Še en univerzalni menu |
|
|
kako bi pa v bascomu to izvedel? ima mogoče že gdo kaj narejeno? jaz se sicer nekaj mantram pa kar mi je uspelo, je da se z dvema tipkama pomikam gor in dol po (glavnem) meniju. zdaj bi še rad da bi z tretjo tipko prišel v pod meni in bi se pač ta vsebina prikazala v drugi vrstici pod tisto ka je mišljeno za vsebino v glavnem meniju. z četrto tipko pa pač en skok nazaj. kaj svetujete? sem pa še začetnik.. |
|
Nazaj na vrh |
|
 |
VolkD Član


 
Pridružen-a: Pet 24 Sep 2004 21:58 Prispevkov: 14228 Aktiv.: 59.91 Kraj: Divača (Kačiče)
|
Objavljeno: Pet Dec 18, 2009 1:36 am Naslov sporočila: |
|
|
Bascom in ARM ? Tole po moje ne bo šlo. |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.84 Kraj: prekmurje
|
Objavljeno: Pet Dec 18, 2009 7:33 am Naslov sporočila: Še en univerzalni menu |
|
|
se opravičujem, lahko post premkanete na ustrezno lokacijo. videl sem da je pogovor o tem stekel tu že prej in sem še vprašal za bascom. |
|
Nazaj na vrh |
|
 |
mucek Član


 
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5537 Aktiv.: 24.03 Kraj: Domzale
|
Objavljeno: Pet Dec 18, 2009 8:22 am Naslov sporočila: |
|
|
Mare je dal enkrat link do enega prevajalnika Basic za ARM - žal trenutno nimam shranjenega linka. Mislim, da ima takšne "osnovne" funkcije že pokrite.
LP, Grega |
|
Nazaj na vrh |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 766 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Sob Dec 19, 2009 10:17 am Naslov sporočila: Re: Še en univerzalni menu |
|
|
Ti MarE69 ?
Moje poznavanje C-ja je bolj klavrno zato tudi vprašanja..
Torej za premikanje uporabljaš 4 tipke gor,dol, naprej, nazaj ter ENT za potrditev
v začetni strukturi so akcije, ki se izvedejo glede na to katera tipka je pritisnjena.
z "draw_menu" pa izpišeš trenuten meni..
Če prav razumem naprimer: &Sub13Exec kliče funkcijo, ki z potrditvijo v določenem meniju izvedeš ??
Zanima me tudi kje je kakšna pavza oziroma.. debounce?
v funkciji za branje tipk te prebereš in se glede na pritisnjeno tipko premikaš med meniji. A nikjer ne preverjaš ali je bila ta tipka že prej pritisnjena torej v primeru da tipko držiš preveč časa se zelo hitro premikaš med meniji?
Ta preveč časa pa je lahko tudi recimo.. 0,5sec?
Torej se ti lahko zgodi da ob vsakem pritisku tipke prideš za več menijev naprej?
V bistvu je edina omejitev čakanje v drugih funkcijah recimo ob izpisu menijev..??
Ali pa kaj narobe razmišljam??
Še nekaj mi ni jasno.. v kodi za branje tipk..
razumem KEY1_LEFT, KEY2_UP, KEY3_DOWN..
a pri KEY4_RIGHT? če prav razumem iz kode z to tipko potrdiš izbiro torej se izvede "akcija" kot če bi potrdil z ENT?
na koncu pa če je tipka različna od prejšnjih "case" torej ENT pa greš na naslednji-child meni?
ni tukaj nekaj zamenjano??
Koda: |
case (KEY4_RIGHT) : {
if (current->exec != NULL) {
exec = current->exec;
exec();
} else
if (current->child != NULL){
current = current->child;
draw_menu (current);
}
break;
|
???
Hvala za potrpežljivost! |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.18
|
|
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: 7 dni
Powered by phpBB © 2001, 2005 phpBB Group
|