void setup() {
// put your setup code here, to run once:
volatile long i;
volatile char *dir_f, *dir_k, *dir_a, *dir_c, row;
volatile char *output_f, *input_k, *output_a, *output_c;
// direction setup
dir_f = 0x30; dir_k = 0x107;
dir_a = 0x21; dir_c = 0x27;
// I/O setup
output_f = 0x31; input_k = 0x106;
output_a = 0x22; output_c = 0x28;
// enable pins for I/O
*dir_f = 0x0F; *dir_k = 0x00;
// *output_a = 0x0F; *output_c = 0x0F; test for 8 LEDS on
while (1) {
for (row = 0; row < 4; row++) {
*output_f = 1 << row;
*output_a = *input_k;
if (*input_k != 0) {
*output_c = 1 << row;
for (i = 0; i < 200000; i++);
*output_c = 0;
}
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}