і
МИКРОКОНТРОЛЛЕРЫ
ї -
unsigned char
LedTurned = 0 ;
/ / <1> Виртуальный байт включения/выключения светодиодов
/ / Каждому биту соответствует один светодиод.
unsigned short
V irtu a lT im e r[
8
]
=
/ / <2> Ячейки виртуальных таймеров для наших кнопок.
{0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 };
unsigned char
PWMBound
[8]
=
/ / Ячейки-аналоги регистров
ОСИ
виртуальных ШИМ-ов
/ / для наших светодиодов.
{127, 127, 127,
127,
127, 127, 127, 127);
signed char
PWMSign
[8]
=
/ / Знак изменения величины границы
ОСИ
/ / для наших светодиодов.
{1 ,
1 ,
1 ,
1 , 1 ,
1 , 1 ,
і ) ;
void STOP_TXMER(unsigned char buttonNo){VirtualTim er[buttonNo] = 0 ;}
'
/ / <3> Остановка заданного виртуального таймера.
void START_20MSEC(unsigned char buttonNo){VirtualTim er[buttonNo] = 32;)
/ / Запуск заданного виртуального таймера на 20 мсек.
void START_05SEC(unsigned char buttonNo){VirtualTim er[buttonNo] = 800;}
/ / Запуск заданного виртуального таймера на 0.5 сек.
void START_10SEC(unsigned char buttonNo){VirtualTim er[buttonNo] = 1600;}
/ / Запуск заданного виртуального таймера на 1.0 сек.
void TURNON_LED(unsigned char buttonNo){LedTurned |= 1 « buttonNo;}
/ / <4»Включение заданного светодиода.
void TURNFF_LED(unsigned char buttonNo){LedTurned &= ~(1 « buttonNo);}
/ / Выключение заданного светодиода.
vo id CHANGE_BRIGHT(unsigned char buttonNo)
/ / <5> Изменение яркости заданного канала.
{
i f (PWMSign[buttonNo] > 0 &S PWMBound[buttonNo] < 255)
PWMBound[buttonNo]++;
i f (PWMSign[buttonNo] < 0 && PWMBound[buttonNo] > 0) PWMBound[buttonNo] — ;
}
void CHANGEJSIGN(unsigned char buttonNo){PWMSign[buttonNo] = -PWMSign[buttonNo];}
/ / Изменение направления изменения яркости заданного канала.
void STOP_TIMER_TORNON_LED(unsigned char buttonNo)
/ / <6> Останов таймера и включение светодиода.
{
STOP_TIMER (buttonNo);
TURNON_LED(buttonNo);
}
void TORNON_LED_START_10SEC(unsigned char buttonNo)
/ / Включение светодиода и запуск таймера на 1 сек
{
TURNON_LED(buttonNo);
STARTJL0SEC(buttonNo);
)
void TURNOFF_LED_START_10SEC(unsigned char buttonNo)
/ / Отключение светодиода и запуск таймера на 1 сек
{
TURNFF_LED(buttonNo);
START_10SEC(buttonNo);
}
У Радиолюбитель - 1
1 /2 0 0
40
предыдущая страница 40 Радиолюбитель 2008-11 читать онлайн следующая страница 42 Радиолюбитель 2008-11 читать онлайн Домой Выключить/включить текст