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

Pridružen-a: Tor 14 Nov 2006 20:09 Prispevkov: 127 Aktiv.: 0.56 Kraj: Ljubljana
|
Objavljeno: Pet Feb 29, 2008 4:28 pm Naslov sporočila: LPC2378 - IOxPIN |
|
|
Živjo
Malo se igram z LPC2378, pa imam probleme z branjem tipk. Namreč - tipke mi prebere normalno, če uporabim standardni IOPIN1, medtem ko mi za FIO1PIN ne dela!
Uporabljam ga pa tako:
Koda: |
/* Dolocimo se registre za tipke */
PINSEL3 = 0x00000000; // pini imajo funkcijo GPIO
PINMODE3 = 0x000020A0; // na bite 5-4, 7-6 in 13-12 (tipke) zapisemo vrednost 01 -ni pull up/down uporov
FIO1DIR = 0x00000000; // pine P1.x postavimo kot vhodne
FIO1MASK = 0x00000000; // z masko dolocimo do katerih pinov lahko dostopamo
/* Zdaj pa tipke lahko beremo prek FIO1PIN, na bitih 18, 19 in 22 */
if ( !(FIO1PIN & (1<<18)) ) // gledamo ali je pritisnjena tipka LEFT; uporabimo masko, da gledamo samo ta bit
{....} |
Nastavil sem PINSEL, PINMODE, FIODIR in FIOMASK - zakaj mi noče prebrati? Pull up/down upori so izklopljeni, saj je stanje vedno definirano ("1" če ni pritisnjena in "0", če je pritisnjena). Vem da bi lahko izpustil te registre, vendar hočem nastavit vse "po regelcih", da bom vedel za naprej.
Hvala _________________ To mi deli! |
|
Nazaj na vrh |
|
 |
Olaf Član

Pridružen-a: Tor 14 Nov 2006 20:09 Prispevkov: 127 Aktiv.: 0.56 Kraj: Ljubljana
|
Objavljeno: Pet Feb 29, 2008 6:29 pm Naslov sporočila: |
|
|
Sem že našel!!
Vsej LPC2000 družini sta skupna porta 0 in 1. LPC2378 pa ima več portov, ki omogočajo delovanje tudi v t.i. "High speed GPIO" načinu. Ker "fabrka" želi obdržati kompatibilnost v vsej LPC2000 družini, je potrebno ta način za porta 0 in 1 posebej vklopiti.
V registru SCS (System control and Status register), moraš zato postavit bit 0 na 1. In to je to! Se počutim kar malo
Seveda pa bi lahko to napisali tudi v User-Manualu, na mestu kjer razlagajo FIOxPIN in ostale "fast" registre...
BTW - Kako lahko spreminjam samo nek določen bit v registru, pri tem pa ne spremenim ostalih? Je edini način maskiranje? _________________ To mi deli! |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.59 Kraj: Trzic
|
Objavljeno: Pet Feb 29, 2008 7:00 pm Naslov sporočila: |
|
|
Nastavitev bita: register |= (1<<15);
Brisanje bita: register &= ~(1<<15);
Drugega kot maskiranje nisem videl. Razen pri FIO portih, kjer imaš FIOSET in FIOCLR registre. _________________ Lp,
Matevž |
|
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: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|