Почему-то не сбрасывается счётчик watchdog таймера командой IWDG_KR = 0xAA; в stm8s-discovery (смотрю на осциллограф, а там постоянно возникает ресет)... Вот код программы (в IAR 1.40.1 оптимизация кода низкая):
#include <iostm8S105c6.h> #include <intrinsics.h> //-------------------------------------------------------------------------------- // // Setup the system clock to run at 16MHz using the internal oscillator. // void InitialiseSystemClock() { CLK_ICKR = 0; // Reset the Internal Clock Register. CLK_ICKR_HSIEN = 1; // Enable the HSI. CLK_ECKR = 0; // Disable the external clock. while (CLK_ICKR_HSIRDY == 0); // Wait for the HSI to be ready for use. CLK_CKDIVR = 0; // Ensure the clocks are running at full speed. CLK_PCKENR1 = 0xFF; // Enable all peripheral clocks. CLK_PCKENR2 = 0xFF; // CLK_CCOR = 0; // Turn off CCO. CLK_HSITRIMR = 0; // Turn off any HSIU trimming. CLK_SWIMCCR = 0; // Set SWIM to run at clock / 2. CLK_SWR = 0xe1; // Use HSI as the clock source. CLK_SWCR = 0; // Reset the clock switch control register. CLK_SWCR_SWEN = 1; // Enable switching. while (CLK_SWCR_SWBSY != 0); // Pause while the clock switch is busy. } void InitialisePorts() { PD_ODR = 0; // All pins are turned off. PD_DDR = 0xff; // All pins are outputs. PD_CR1 = 0xff; // Push-Pull outputs. PD_CR2 = 0xff; // Output speeds up to 10 MHz. } void InitialiseIWDT() { IWDG_KR = 0xCC; // key_enable IWDG (Watchdog Timer) IWDG_KR = 0x55; // key_access to IWDG_PR and IWDG_RLR (config prescaler) IWDG_PR = 0; IWDG_RLR = 0x0; } int main() { InitialiseSystemClock(); InitialisePorts(); PD_ODR_ODR2 = 1; __no_operation(); __no_operation(); __no_operation(); __no_operation(); PD_ODR_ODR2 = 0; InitialiseIWDT(); volatile int counter; while (1) { IWDG_KR = 0xAA; // refresh value of Watchdog counter counter++; } }
-
- 0. IWDG_RLR = 0x0 - как-то стремно. Может лучче 0xFF? lightelf(107 знак., 17.07.2014 15:38)
- Конечно же 0.! Вот я дубина! Очевидные вещи! :) Спасибо огромное! - Механик08(17.07.2014 15:50)
- 0. IWDG_RLR = 0x0 - как-то стремно. Может лучче 0xFF? lightelf(107 знак., 17.07.2014 15:38)