const LED_NUM = 24;
const LED_ON = 1, LED_OFF = 0;
// 2-dimension char ledarr[LED_NUM][4] for 24 LEDs
var ledarr = array_create(2, 1, LED_NUM, 4);
ledarr.set(0, 0, 5, 0, 5, 1); // ledarr[0 ]: PF0 - PF1
ledarr.set(1, 0, 5, 2, 5, 3); // ledarr[1 ]: PF2 - PF3
ledarr.set(2, 0, 5, 4, 5, 5); // ledarr[2 ]: PF4 - PF5
ledarr.set(3, 0, 5, 12, 5, 13); // ledarr[3 ]: PF12 - PF13
ledarr.set(4, 0, 5, 14, 5, 15); // ledarr[4 ]: PF14 - PF15
ledarr.set(5, 0, 6, 0, 6, 1); // ledarr[5 ]: PG0 - PG1
ledarr.set(6, 0, 6, 2, 6, 3); // ledarr[6 ]: PG2 - PG3
ledarr.set(7, 0, 6, 4, 6, 5); // ledarr[7 ]: PG4 - PG5
ledarr.set(8, 0, 3, 11, 3, 12); // ledarr[8 ]: PD11 - PD12
ledarr.set(9, 0, 3, 13, 4, 3); // ledarr[9 ]: PD13 - PE3
ledarr.set(10, 0, 4, 4, 4, 5); // ledarr[10]: PE4 - PE5
ledarr.set(11, 0, 4, 6, 4, 2); // ledarr[11]: PE6 - PE2
ledarr.set(12, 0, 6, 13, 6, 14); // ledarr[12]: PG13 - PG14
ledarr.set(13, 0, 3, 14, 3, 15); // ledarr[13]: PD14 - PD15
ledarr.set(14, 0, 3, 0, 3, 1); // ledarr[14]: PD0 - PD1
ledarr.set(15, 0, 4, 7, 4, 8); // ledarr[15]: PE7 - PE8
ledarr.set(16, 0, 4, 9, 4, 10); // ledarr[16]: PE9 - PE10
ledarr.set(17, 0, 4, 11, 4, 12); // ledarr[17]: PE11 - PE12
ledarr.set(18, 0, 4, 13, 4, 14); // ledarr[18]: PE13 - PE14
ledarr.set(19, 0, 4, 15, 3, 8); // ledarr[19]: PE15 - PD8
ledarr.set(20, 0, 3, 9, 3, 10); // ledarr[20]: PD9 - PD10
ledarr.set(21, 0, 3, 5, 3, 3); // ledarr[21]: PD5 - PD3
ledarr.set(22, 0, 4, 1, 4, 0); // ledarr[22]: PE1 - PE0
ledarr.set(23, 0, 3, 4, 3, 6); // ledarr[23]: PD4 - PD6
set_led(index, value)
{
var port, pin;
if (value == LED_ON)
{
port = array_get(ledarr, index, 0);
pin = array_get(ledarr, index, 1);
gpio_create(port, pin).config(GPIO_OUTPP).set();
port = array_get(ledarr, index, 2);
pin = array_get(ledarr, index, 3);
gpio_create(port, pin).config(GPIO_OUTPP).clear();
}
else
{
port = array_get(ledarr, index, 0);
pin = array_get(ledarr, index, 1);
gpio_create(port, pin).config(GPIO_INPUT);
port = array_get(ledarr, index, 2);
pin = array_get(ledarr, index, 3);
gpio_create(port, pin).config(GPIO_INPUT);
}
}
set_ledarr(cnt)
{
var index = 0;
while (index < LED_NUM)
{
if (cnt & (1 << index))
{
set_led(index, LED_ON);
}
else
{
set_led(index, LED_OFF);
}
index = index + 1;
}
}
var cnt = 0;
while (1)
{
set_ledarr(cnt);
timer_delayms(500);
cnt = cnt + 1;
}