1) В папке "Digit_display" функция для отображения любого числа на 7 сегментном индикаторе динамическим способом.
Число вносится в переменную "indication" и прекрасно отображается.
2) В папке "RC5_only code" функция- декодер сигнала с пульта-
тоже отлично работает (отдельное спасибо Aheir -у)
в оставшейся папке попытка их объединить.
Сначала пробовал в декодер RC5 внести функции заполнения массива числами и отрисовки дисплее в виде отдельных функций.
Все что записано в обработчике прерываний-прекрасно исполняется, а дисплей просто пустой....
Если в тела функций заполнения массива числами и отображения вписать нечто простейшее, вроде зажечь 1 сегмент индикатора, или -другой--работает.
Вставляешь рабочий код обратно вместо только что работавшего простейшего --опять пустой дисплей
Пробовал в рабочую функцию декодирования и отображения чисел на дисплее (папка Digit_display) впихивать код декодера RC5, ессно инициализацию делал соответственно, ---тут уже дисплей работает, все отображает, а декодер RС5-нет. Даже в прерывание не заходит.
Полтергейст какой-то
Структура программы:
1) объявления переменных, массивов, вложения хидеров
2) обработчик прерываний INT0. куда подключен TSOP
3) обработчик прерывания по переполнению таймера
4) функция декодирования чисел-если число, пусть-28, то она
в 0-ой элемент массива пишет 8, в первый-2, во второй минус
5)так же отд. функция вывода этих элементов массива на индикатор
void main(void) {
инициализация МК
разрешение прерываний
while(1){
функция 4 ();
функция 5 ();
};
}
Так вот, если ничего другого не трогать вообще, а всего лишо в while(1) в тела функций 4 и 5, выше по тексту вписать нечто простейшее, то все работает как надо... А стоит вписать куски кода, работавшие в отд. проекте---глухо как в танке
Если кому не лень- укажите чайнику, что же происходит? С дебаггером сложно. Не знаю асм.
- Вложения
-
- projects.rar
- (125.81 КБ) 209 скачиваний



