Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
watchdog_test.c
См. документацию.
1 
31 #include "watchdog_test.h"
32 
33 const uint32_t sys_freq = 50000000; // Системная частота
34 char dbg_buffer[256]; // Отладочный буфер
35 uint32_t count = 0; // Счетчик
36 
40 void Watchdog_IRQ(void)
41 {
42  if (count < 10)
43  {
44  PRINT(" Прерывание от сторожевого таймера: %d", count++);
45  WDT_IntClr(WDT); // Сбрасываем сторожевой таймер, чтобы не было аппаратного сброса
46  DBG_TX_Flush(); // Вывод всех данных, накопленных в кольцевом буфере, в отладочный UART
47  }
48  else
49  {
50  PRINT(" Аппаратный сброс");
51  count++;
52  NVIC_DisableIRQ(1);
54  PRINT ("Тест завершен УСПЕШНО!");
55  }
56 
57 }
58 
60 {
61  PRINT("Тестирование сторожевого таймера");
62 
63  WDT_SetValue(WDT,160000000); // Установка счетчика сторожевого таймера
64  WDT_IntEnable(WDT); // Включение прерывания на сторожевом таймере
65  NVIC_EnableIRQ(Watchdog,1); // Разрешение прерывания сторожевого таймера
66  WDT_HWResetEnable(WDT); // Включить аппаратную перезагрузку
67 }
#define PRINT(...)
Макросы для использования отладочного выхода
Definition: debug_uart.h:48
char dbg_buffer[256]
Отладочный буфер
Definition: watchdog_test.c:34
void NVIC_EnableIRQ(IRQn_T IRQn, uint32_t vec)
Разрешение прерывания
Definition: system.c:74
#define WDT
Указатель на структуру WDT.
void WDT_HWResetEnable(WDT_T *pWTD)
Включение аппаратного сброса
Definition: watchdog.c:47
void WDT_IntEnable(WDT_T *pWTD)
Включение прерывания сторожевого таймера
Definition: watchdog.c:88
void WDT_IntClr(WDT_T *pWTD)
Сброс флага прерывания сторожевого таймера и его установка в значение из регистра WDOGLOAD...
Definition: watchdog.c:98
void Test_Watchdog()
Тест Watchdog.
Definition: watchdog_test.c:59
void NVIC_DisableIRQ(uint32_t vec)
Запрещение прерывания
Definition: system.c:347
const uint32_t sys_freq
Системная частота
Definition: watchdog_test.c:33
Этот файл содержит структуры, макросы и функции необходимые необходимые для тестовой программы для ап...
void WDT_SetValue(WDT_T *pWTD, uint32_t value)
Установка начального значения счетчика сторожевого таймера
Definition: watchdog.c:58
void WDT_IntDisable(WDT_T *pWTD)
Выключение прерывания сторожевого таймера
Definition: watchdog.c:78
void DBG_TX_Flush(void)
Вывод всех данных, накопленных в кольцевом буфере, в отладочный UART.
Definition: debug_uart.c:80
void Watchdog_IRQ(void)
Обработчик прерываний от сторожевого таймера
Definition: watchdog_test.c:40
uint32_t count
Definition: watchdog_test.c:35