static KEY_INFO keys[];
...
Keyboard::KEY_INFO keys[] = {
{(1 << 4) | 6, 0, Keyboard::KEY_UP},
{(1 << 4) | 2, 0, Keyboard::KEY_DOWN},
{(1 << 4) | 3, 0, Keyboard::KEY_LEFT},
{(1 << 4) | 5, 0, Keyboard::KEY_RIGHT},
{(1 << 4) | 4, 0, Keyboard::KEY_ENTER},
{(0 << 4) | 7, 0, Keyboard::KEY_MONITOR},
{(0 << 4) | 6, 0, Keyboard::KEY_A},
{(0 << 4) | 5, 0, Keyboard::KEY_AUTO},
{(0 << 4) | 4, 0, Keyboard::KEY_B}
};
.... all OK
.....
void Keyboard::Execute(void)
{
for (int i = 0; i < sizeof(keys); i++)
{
if (keys[i].PinInfo & (1 << 4)) // PINE
{
if (PINE & (1 << keys[i].PinInfo & 0x0f)) // unpressed
keys[i].keyPressCounter = 0;
else keys[i].keyPressCounter++;
}
else // PINB
{
if (PINB & (1 << keys[i].PinInfo & 0x0f)) // unpressed
keys[i].keyPressCounter = 0;
else keys[i].keyPressCounter++;
}
}
}
not OK - "Error[Pe070]: incomplete type is not allowed D:\work\remote\Ver1_0\keyb.cpp 29
"