文档库 最新最全的文档下载
当前位置:文档库 › nios看门狗定时器使用

nios看门狗定时器使用

#include "stdio.h"
#include "system.h"
#include "io.h"
#include "alt_types.h"
#include "altera_avalon_pio_regs.h"
#include "altera_avalon_timer_regs.h"
#include "unistd.h" // usleep 头文件

int wr(int addr, int data){ // 写函数
IOWR_8DIRECT(CPU_AVALON_WTB_2_BASE, addr, data);
return 1;
}

int rd(int addr){ // 读函数
int data;
data=IORD_8DIRECT(CPU_AVALON_WTB_2_BASE, addr);
return data;
}

void initwd()//初始化看门狗
{
IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_WATCHDOG_BASE,ALTERA_AVALON_TIMER_CONTROL_START_MSK);
}
void feedwd()//1s喂一次狗
{
IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_WATCHDOG_BASE,0x3600);
IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_WATCHDOG_BASE,0x016e);
}

int main()
{
initwd();//初始化看门狗(开启后不能停止)
feedwd();//喂狗
int j;
int x=0,y[256],i=0,addr1=0x0800;
while(1)
{ wr(addr1,x);
y[i]=rd(addr1);
wr(0x089,y[i]);
usleep(500000);
x=x+1;
i=i+1;
addr1=addr1+1;
if(i==256)
{ i=0;
x=0;
addr1=0x0800;
for(j=0;j<256;j++)
{ wr(addr1+j,0);
}
addr1=0x0800;
}
feedwd();//喂狗
}
printf("Hello from Nios II!\n");

return 0;
}

相关文档
相关文档 最新文档