- GoodSpeed: Bye PET Palack, hello SodaStream
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- sziku69: Fűzzük össze a szavakat :)
- Geri Bátyó: Agglegénykonyha – bevezető - igényfelmérés
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Elektromos rásegítésű kerékpárok
Új hozzászólás Aktív témák
-
don_peter
senior tag
Hölgyek, Urak segítséget szeretnék kérni alfanumerikus 4x4-es keypad programjának megírásához.
Angol ABC és 0-9-ig számok lennének kb. mint a telefonnál vagy hasonlóan gondoltam kivitelezni.
Tudtok segíteni elméletben vagy akár gyakorlatban?
Hogyan lehet ezt legegyszerűbben megírni?
P18F4550-es mikrokontroller fogja feldolgozni az adatokat.
Ilyen lenne a keypad:A sima 16 gomb kezelésére írtam már programot, talán ebből ki lehetne indulni csak nem tudom, hogy miként vagy milyen irányban haladjak tovább..
A megírt kódom most így néz ki:#include <delays.h>
#define SOROK LATD //Sorok
#define oszlop1 PORT_B4 //Oszlopok bemenet
#define oszlop2 PORT_B5
#define oszlop3 PORT_B6
#define oszlop4 PORT_B7
#define MAGAS 1
#define ALACSONY 0
/*----- Prototípus --------*/
unsigned char get_key();
unsigned int bill_ertek; //Globális változó
void main(void){
unsigned int i,k=0;
ADCON1 = 7; //Analóg portok digitálisra állítva
TRISB = 0xf0; //B port felső 4 bit (nagyobb helyi értéken 7:4) bemenet
//alsó 4 bit (kisebb helyi értéken 3:0) kimenet
//0b11110000
while(1){
bill_ertek = get_key();
Delay10TCYx(10);
}//while()
}//main()
//Függvények
unsigned char get_key(){
unsigned int i, k=0;
for(i=0; i<4; i++){
SOROK = (0x08>>i); //Léptetjük a sorok szintjét
k++;
if(oszlop1 == MAGAS){
while(oszlop1==MAGAS); //Várakozunk a gomb felengedéséig
return k;
}
k++;
if(oszlop2 == MAGAS){
while(oszlop2==MAGAS); //Várakozunk a gomb felengedéséig
return k;
}
k++;
if(oszlop3 == MAGAS){
while(oszlop3==MAGAS); //Várakozunk a gomb felengedéséig
return k;
}
k++;
if(oszlop4 == MAGAS){
while(oszlop4==MAGAS); //Várakozunk a gomb felengedéséig
return k;
}
if(i>0){ //Ha a második lefutásnál sincs találat
k=(i+1)*4;
}else if(i==3){ //Ha az utolsó is lepörgött nulláztuk k-t
k=0;
}else{ //Első lefutás után a k értéke 4 lesz
k=4;
}
}
return ALACSONY;
}Minden ötletet szívesen fogadok.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Nők, nőügyek (18+)
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Renault, Dacia topik
- Milyen videókártyát?
- Commodore 64
- Soundbar, soundplate, hangprojektor
- Milyen TV-t vegyek?
- Banggood
- GoodSpeed: Bye PET Palack, hello SodaStream
- Android alkalmazások - szoftver kibeszélő topik
- További aktív témák...
- Extrém teljesítményű gamer PC (AMD Ryzen 7 5700X, Radeon RX 7900 XTX) LEGJOBB ÁR/ÉRTÉK ARÁNY!
- Garanciális Gamer Számítógép, PC (RTX 3060Ti, I5-10400, 16GB Ram, SSD) Beszámítás! Posta ok! (37)
- Garanciális Gamer Számítógép, PC (GTX 1070 8GB, I3-10105, 16GB Ram, SSD) Beszámítás! Posta ok! (36)
- SAPPHIRE Radeon RX 6650 XT PULSE 8GB + 1 év gari
- Bomba ár! Lenovo ThinkPad T420 - i5-2GEN I 4GB I 320GB I 14" HD I Cam I W10 I Garancia!
- HIBÁTLAN iPhone 15 Pro 256GB Black Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3224
- 35" ASUS ROG Swift PG35VQ curved GAMER monitor
- GYÖNYÖRŰ iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3049, 94% Akkumulátor
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Bomba ár! Dell Latitude E5450 - i5-5GEN I 4GB I 500GB I 14" HD I HDMI I Cam I W10 I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest