Ну например так. Заводим структуру:
Код
typedef struct
{
unsigned int OnTime;
unsigned int OffTime;
}LedStateTimes;
Перечисляем возможные состояния светодиода:
Код
typedef enum
{
lsState1 = 0,
lsState2,
lsState3,
lsState4
}LedStates;
И соответствующие им длительности горения/негорения (в тиках таймера):
Код
const LedStateTimes LedTimes[] =
{
{20, 50},
{20, 500},
{200, 50},
{2000, 50},
};
объявляем переменную состояния диода:
Код
LedStates led_state = lsState1;
И в таймерном прерывании:
Код
{
static unsigned int ticks = 10;
static int led_is_on;
if (!--ticks)
{
if (led_is_on)
{
led_is_on = 0;
off(LED_PIN);
ticks = LedTimes[led_state].OffTime;
}
else
{
led_is_on = 1;
on(LED_PIN);
ticks = LedTimes[led_state].OnTime;
}
}
}
Вот, как-то так:-)
Если бы я знал, что такое электричество...