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

 
 
> RTC and LPC2148, глюки с RTC при срабатывании прерывания
LEXIS
сообщение Nov 20 2012, 13:08
Сообщение #1


Участник
*

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



Решил в своем проекте использовать прерывания от RTC через каждый час:
Инициализация RTC:
CODE

main ()
{
RTCInit();

//определить время
local_time.RTC_Sec = 0;
local_time.RTC_Min = 46;
local_time.RTC_Hour = 13;
local_time.RTC_Mday = 2;
local_time.RTC_Wday = 4;
local_time.RTC_Yday = 275;
local_time.RTC_Mon = 11;
local_time.RTC_Year = 2012;
RTCSetTime( local_time );

if ( install_irq( RTC_INT, (void *)RTCHandler ) == FALSE )
{
while ( 1 );
}

RTCStart ();
WHILE (1)
{
if (alarm_on !=0)
{
//что-то делаем
}
}

}


Сами функции RTC:
CODE
void RTCHandler (void) __irq
{
ILR |= ILR_RTCCIF; /* |clear interrupt flag */

//IENABLE; /* handles nested interrupt */

alarm_on = 1;

// IDISABLE;
VICVectAddr = 0; /* Acknowledge Interrupt */
}


void RTCInit( void )
{
alarm_on = 0;

/*--- Initialize registers ---*/
AMR = 0;

CIIR = IMHOUR;
CCR = 2;
CCR = 0;
PREINT = PREINT_RTC;
PREFRAC = PREFRAC_RTC;


}


void RTCStart( void )
{
/*--- Start RTC counters ---*/

CCR = (CCR_CLKEN | CCR_CLKSRC); //Enable RTC and use the external 32.768kHz crystal
ILR = ILR_RTCCIF; //Clears the RTC interrupt flag

}

void RTCSetTime( RTCTime Time )
{
SEC = Time.RTC_Sec;
MIN = Time.RTC_Min;
HOUR = Time.RTC_Hour;
DOM = Time.RTC_Mday;
DOW = Time.RTC_Wday;
DOY = Time.RTC_Yday;
MONTH = Time.RTC_Mon;
YEAR = Time.RTC_Year;
}

Так вот, все работает хорошо до тех пор пока не срабатывает перывание от RTC. После этого начинаются непонятные глюки. При отключении прерываний все работает хорошо. Чтение\запись в RTC проходит без проблем. Был ли у кого-нибудь такой косяк или я где-то косяк спорол?

Сообщение отредактировал IgorKossak - Nov 20 2012, 21:02
Причина редактирования: [codebox] для длинного кода!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 02:59
Рейтинг@Mail.ru


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