Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-авг-23 01:38

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Оконный сторожевой таймер.
СообщениеДобавлено: 2017-авг-22 15:47 
Не в сети

Зарегистрирован: 2016-янв-29 14:48
Сообщения: 2
Проблема запуска оконного сторожевого таймера.
Текст программы.
// Основная функция.
void main()
{
VTOR = 0x20000000; // Для отладки в RAM.
// Разрешение процедуры прерывания от WWDG.
NVIC_EnableIRQ(WWDG_Irq);
// Разрешение тактирования WWDG.
PER_CLOCK |= (1<<12);
WWDG->CFR = 0x01FF;
WWDG->CR = 0xFD;
while(1)
{
if(WWDG->SR == 1)
{
WWDG->SR = 0;
WWDG->CR = 0xFD;
}
}
}
// ***********************************
// Обработка прерывания.
void WWDG_IRQHandler(void)
{
NVIC_DisableIRQ(WWDG_Irq);
WWDG->SR = 0x0;
WWDG->CR = 0x7F;
NVIC_EnableIRQ(WWDG_Irq);
}
// ************************************
// Прцедура сброса МП.
PUBWEAK Reset_Handler
SECTION .text:CODE:REORDER(2)
Reset_Handler
;; LDR R0, =SystemInit
;; BLX R0
LDR R0, =__iar_program_start
BX R0

// *************************************
Проблемы.
1.Однако прерывания не возникает.
2.Регистр LR становится равным 0xFFFFFFF9,
затем программа доходит до адреса 0xFFFFFFFF
и останавливается.
В чём ошибка?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: actclekcz и гости: 2


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB