参考ug585和Xilinx官方提供的例程xttcps_rtc
代码需要加入初始化GPIO的相关代码,定义XGpio结构体,具体代码参考之前GPIO代码。需要修改的是在TickHandler中修改每次到1s的时候触发LED亮灭改变,或者在主函数中加1个1s定时器触发的时候GPIO输出电平高低变换的代码即可。
if (0 != (XTTCPS_IXR_INTERVAL_MASK & StatusEvent)) {
TickCount++;
if (TICKS_PER_CHANGE_PERIOD == TickCount) {
TickCount = 0;
// UpdateFlag = TRUE;
if(flag == 0)
{
flag = 1;
}
else
flag = 0;
XGpio_DiscreteWrite(&Gpio, LED_CHANNEL, flag);
}
}
有几个需要注意的地方:
TickHandler相当于每次1/Output_Freq的时间触发一次,比如官方给的是100Hz,相当于每1/100 = 0.01s触发一次,TICKS_PER_CHANGE_PERIOD给的是100,TickCount每0.01s加1,100次相当于1s,可以基于自己想要的间隔进行修改。
还有就是里面SetupTimer,SetupTicker函数对TTC进行了配置,配置了TTC是间隔模式(Internal Mode)而非溢出模式(Overflow Mode)
例程里面的pwmduty那个函数,我没用,那个用来打印计时的
例程中没有加这个函数Xil_ExceptionInit(); 我没加发现灯不亮,加上就好了。
546

被折叠的 条评论
为什么被折叠?



