Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
//Команды
#define VOL_up 0b10011101011000100010100011010111 //VOL+
#define VOL_down 0b10011101011000101010100001010111 //VOL-
#define SRC 0b10011101011000101100100000110111 //SRC
#define FORWARD 0b10011101011000100101000010101111 //F
#define REVERCE 0b10011101011000101101000000101111 //R
#define ATT 0b10011101011000100110100010010111 //ATT
#define FM_up 0b10011101011000101011000001001111 //FM+
#define AM_down 0b10011101011000100011000011001111 //AM-
#define AUD 0b10011101011000101110100000010111 //AUD
#define PAUSE 0b10011101011000100111000010001111 //PAUSE
flash unsigned long KeyTab[10] =
{
VOL_up
,VOL_down
,SRC
,FORWARD
,REVERCE
,ATT
,FM_up
,AM_down
,AUD
,PAUSE
};
flash unsigned int AdcTab[10] =
{
20
,40
,100
,200
,250
,400
,500
,600
,800
,950
};
void QQQ2(void)
{
unsigned int key_res;
unsigned char in_key = 2;
unsigned char N;
while (1) {
key_res = read_adc(in_key);
for (N = 10; --N >= 0; )
#if 0
// Если необходимо попасть в значение
if (abs(AdcTab[N] - key_res) <= 3) {
PRESS_KEY(KeyTab[N]);
break;
}
#else
// Если необходимо попасть в диапазон между значениями
if (key_res >= AdcTab[N]) {
PRESS_KEY(KeyTab[N]);
break;
}
#endif
}
}
Составить ответ | Вернуться на конференцию
Ответы