Глянул бегло прошивку по ссылке:
Код:
/ ------------------------------------------------------------------------------
// Автомат для ИК датчика IRR D.2, выход датчиков открытый коллектор,
// при появлении засветки ИК сигнала замыкается на землю.
// Объявление звуковых сигналов состояния оборудования
#define onEndGame 0 // Конец игры - длинный гудок, иди на базу '----'
#define onBase 1 // Игрок на базе '-..' Домики
#define onShot 2 // Противник попал в игрока '.'
#define onStop 9 // Все звуки успешно проиграны и закончены.
#define offShot 10 // Осечка
#define FireSound 12
unsigned char numSound = onStop;// Текущий проигрываемый звук.
unsigned char PscSound = 0; // Прескалер для звука, 0 .. 255
unsigned int clkSound = 0; // Часы автомата проигрывания звуков, 0..65535
#define ALive 10 //
#define PinIRR PIND.2
//Переменные
unsigned char OutGame = 1; // Игрок закончил игру
unsigned int clkIRR = 0; // 0..65535
unsigned int clkIRB = 0; // 0..65535
inline void AvtIRR()
{
if ( OutGame == 1 ) return;
if (PinIRR == 0)
{
if (PinIRR == 0) //
{
clkIRB++; //
if (clkIRB == 150) {clkIRB =0; clkSound = 0; clkIRR++; numSound = onShot; };
return;
} else clkIRB = 0;
};
if (clkIRR > ALive)
{
OutGame = 1; // Игрок выходит из игры
AmmoClip= 0; // Блокировка выстрелов, пустая обойма
PortEmptyLed = 0; // Включить светодиод "Обойма"
clkIRR=0;
clkSound = 0; // Остановить проигрывание других звуков
numSound = onEndGame; // Включить звук "Конец Игры"
return;
}
} // конец автомата обработки ИК датчика
Я верно понял, что тут нет никакой обработки ИК-пакета?
Просто обрабатывается прерывание "при появлении засветки ИК сигнала замыкается на землю"?
Ну так чего удивляемся, что на солнце реагирует?
Пока не разобрался в структуре кода - там и Си файлы, и ассемблер ...
Но поработать, думаю, тут есть над чем.