Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Взаимодействие прерываний в АРМе
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Dimk@
Здравствуйте!
Для ознакомления с АРМом (LPC2478) поставил себе следующую задачу: сделать часы с использованием RTC, индикация - LCD с контроллером pcf8531.
Результаты:
1. Информация на жк выводится, например, "Hello world" в заданной позиции на дисплее. Программа преобразует код символа в нужный формат и передает через i2c в контроллер жк.
2. Прерывание от счетчика секунд работает: светодиод моргает с частотой 0.5 Гц.

Проблема: когда хочу по прерыванию от счетчика секунд вывести какое-нибудь слово, ничего не получается. Светодиод как мигал, так и мигает, а вот на жк ничего не выводится. Получается что одно прерывание (i2c) работает внутри другого
Подскажите, плиз, в чем может быть дело? Какие регистры прерываний должны быть сконфигурированы, чтобы оба прерывания работали?

З.Ы. Функции работы с жк взял из тестовой проги, которая реализует общение моей отладочной платы с компом через USB: в терминалке печатаем символы, они тут же отображаются на жк.
WDT
Я что-то похожее делал в составе проекта.
У меня вывод на индикатор с 8531 из буфера в памяти 128х32.
Несколько раз в секунду обновление экрана.
Для старта вывода
Код
void start(void)
{
   I20CONCLR = 0xFF;
   I20CONSET= 0x40;
   I20CONSET|= 0x20;
}

Затем вся процедура вывода идет внутри прерывания И2С
В Вашем случае я бы выставил флаг если возникло прерывание от часов и опрашивал бы его где-то в теле программы.
Если при опросе "1", то старт передачи по И2С.
Можно еще определить прерывание от И2С как более приоритетное. И еще можно сделать программно вложенные прерывания с опросом приоритета.
Примерно так, если я Вас правильно понял.

Модератор. Из сообщения удалено ненужное в данном случае цитирование.
Dimk@
Эта проблема возникла от недостаточно сути вопроса. Я думал, что для отображения времени нужно обязательно заходить в подпрограмму обработки прерываний. Я же сейчас сделал циклический вывод на дисплей текущих значений: число, месяц, год, день недели и текущее время. Прерывание от RTC использую только для того, чтобы обрабатывать сигнальные прерывания (по сути, будильник).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.