реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Взаимодействие прерываний в АРМе, Нужен совет знающего человека
Dimk@
сообщение Jan 27 2009, 11:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 5-10-08
Пользователь №: 40 703



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

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

З.Ы. Функции работы с жк взял из тестовой проги, которая реализует общение моей отладочной платы с компом через USB: в терминалке печатаем символы, они тут же отображаются на жк.
Go to the top of the page
 
+Quote Post
WDT
сообщение Jan 30 2009, 11:45
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166



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

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

Модератор. Из сообщения удалено ненужное в данном случае цитирование.
Go to the top of the page
 
+Quote Post
Dimk@
сообщение Feb 10 2009, 08:40
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 5-10-08
Пользователь №: 40 703



Эта проблема возникла от недостаточно сути вопроса. Я думал, что для отображения времени нужно обязательно заходить в подпрограмму обработки прерываний. Я же сейчас сделал циклический вывод на дисплей текущих значений: число, месяц, год, день недели и текущее время. Прерывание от RTC использую только для того, чтобы обрабатывать сигнальные прерывания (по сути, будильник).
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 18:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016