⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 复件 watchdog_func.c

📁 在ALTERA的软核NIOS下watchdog组件的控制函数
💻 C
字号:

void start_watchdog(alt_u32 period)  //启动watchdog,period是监控时间,具体跟硬件模块有关
{
        //IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_B);
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE,ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
        IOWR_ALTERA_AVALON_TIMER_PERIODL (WATCHDOG_CUSTOM_BASE, period&0x0000FFFF);
        IOWR_ALTERA_AVALON_TIMER_PERIODH (WATCHDOG_CUSTOM_BASE, period>>16);
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE, 0x07); 
}

void stop_watchdog()  //停止watchdog
{
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE,ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
}

void set_watchdog_period(alt_u32 period)  //更改watchdog监控时间
{
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE,ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
        IOWR_ALTERA_AVALON_TIMER_PERIODL (WATCHDOG_CUSTOM_BASE, period&0x0000FFFF);
        IOWR_ALTERA_AVALON_TIMER_PERIODH (WATCHDOG_CUSTOM_BASE, period>>16);
}

void feed_watchdog(alt_u32 period)   //在程序的恰当地方调用此函数喂狗,是系统不reset.
{
        IOWR_ALTERA_AVALON_TIMER_PERIODL (WATCHDOG_CUSTOM_BASE, period&0x0000FFFF);
        IOWR_ALTERA_AVALON_TIMER_PERIODH (WATCHDOG_CUSTOM_BASE, period>>16);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -