Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Вопросик по RTC в LPC23xx

Непрочитано 24.05.2011, 16:06  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: вопросик по RTC в LPC23xx

Ну в случае с часами можно еще переписать регистры в память, хотя это больше имеет смысл при подключении внешней микросхемы часов, а в LPC можно читать их напрямую в нужном месте программы.

Рабочий пример
инициализация:

RTC_CCR=0x13; // (1‹‹CLKEN)|(1‹‹CTCRST)|(1‹‹CLKSRC);
install_irq(RTC_INT, (uint32)Int_Rtc, 2); //-- Vector, Handler, Priority
RTC_CIIR=0x01; // Прерывание раз в секунду
RTC_CCR&=~0x02; // (1‹‹CLKEN)|(1‹‹CTCRST)|(1‹‹CLKSRC);

Обработчик прерывания:

void Int_Rtc(void)
{
uint32 z;
if(RTC_ILR & 1) //Это секундное прерывание?
{
//Здесь можно поставить флаг или проинвертировать вывод GPIO, но без задержек!!!
}
RTC_ILR=0x07; //Сбросим источники прерываний
VICVectAddr = 0xFF;
}
Реклама:

Последний раз редактировалось EugenyAM; 24.05.2011 в 16:13.
EugenyAM вне форума  
Непрочитано 25.05.2011, 06:51  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: вопросик по RTC в LPC23xx

ясно, спасибо
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 25.05.2011, 08:40  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: вопросик по RTC в LPC23xx

Сообщение от EugenyAM Посмотреть сообщение
if(RTC_ILR & 1) //Это секундное прерывание?
Есть варианты? Может быть еще каким то прерыванием?
Топикстартеру - закоментите вызов функций внутри прерывания и проверьте работоспособность. Если заработает, то с 99% вероятностью вызываемые функции не реентерабельные. Если например она вызвана из основного цикла и во время ее работы приходит прерывание с вызовом ее же, то может наступить крах системы. Что у Вас и происходит.
kison вне форума  
Непрочитано 25.05.2011, 09:10  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: вопросик по RTC в LPC23xx

Сообщение от kison Посмотреть сообщение
Есть варианты? Может быть еще каким то прерыванием?
У RTC 3 источника прерываний на этом векторе.
Хотя разрешено только секундное, проверяю в целях перестраховки. Сбрасываются тоже все 3. Проц это сильно не нагружает.
EugenyAM вне форума  
Непрочитано 25.05.2011, 09:30  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: вопросик по RTC в LPC23xx

Спасибо, люди, я уже разобрался, я просто неграмотно прерывания писал, почитал гугл - посмотрел как другие пишут, вроде бы понял
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 25.05.2011, 19:49  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: вопросик по RTC в LPC23xx

Сообщение от EugenyAM Посмотреть сообщение
Хотя разрешено только секундное, проверяю в целях перестраховки. Сбрасываются тоже все 3. Проц это сильно не нагружает.
Тогда это делается не так.
Код:
do
{
if(RTC_ILR & 0x01) {...}
if(RTC_ILR & 0x02) {...}
if(RTC_ILR & 0x02) {...}
} while(RTC_ILR & 0x07);
Сброс флагов по отдельности нужно делать внутри соответствующего условного оператора.
kison вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка RTC по UPD запросу к SNTP серверу ikorsa Автоматика и аппаратура связи 2 28.12.2010 07:15
Вопросик по Silabs C8051FXXX serb-radio Микроконтроллеры, АЦП, память и т.д 3 29.12.2009 13:19
FM3130 RTC модуль с памятью - вопросы ZhilDV Микроконтроллеры, АЦП, память и т.д 2 19.04.2009 12:37
USART один вопросик renatavr Микроконтроллеры, АЦП, память и т.д 1 16.02.2008 13:34
RTC ds1307.. не могу прочитать сразу нельсколько байтов godz320 Микроконтроллеры, АЦП, память и т.д 1 22.01.2008 12:13


Часовой пояс GMT +4, время: 07:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.