void setup() {
Serial.begin(9600);
DDRA |= 0xFF;
DDRK |= 0x00;
DDRF |= 0xFF;
}
void loop() {
unsigned char digits[] = {
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F // 9
};
int keymap[4][3]={
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{-1, 0, -1}
};
unsigned int row,col;
for(row = 0; row < 4; row++) {
PORTF =(1<<row);
for(col = 0; col < 3; col++) {
if (PINK & (1 << col)) {
int numPressed = keymap[row][col];
if (numPressed>=0) {
PORTA = digits[numPressed];
Serial.println(numPressed);
delay(500);
}
}
}
}
}