在platform_zynqmp.c文件的platform_setup_timer函数中,首先采用XTtcPs_CfgInitialize函数对TimerInstance全局变量进行初始化,让TimerInstance和硬件的定时器0(ID为XPAR_PSU_TTC_0_DEVICE_ID)绑定,并让TimerInstance的寄存器地址和定时器0的地址绑定,同时初始化定时器0的寄存器(大都赋值为0),禁止定时器中断: Config = ...
staticvoidTimerIntrHandler(void*CallBackRef){XScuTimer*TimerInstancePtr=(XScuTimer*)CallBackRef;XScuTimer_ClearInterruptStatus(TimerInstancePtr);printf("***Timer Event!!!***\n\r"); 最后一步是修改GPIO中断服务程序,在每次按下按钮时启动定时器: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...
(Xil_ExceptionHandler)timer_callback, (void *)&TimerInstance); XScuGic_EnableIntr(INTC_DIST_BASE_ADDR, TIMER_IRPT_INTR); XScuTimer_EnableInterrupt(&TimerInstance); XScuTimer_Start(&TimerInstance); //1、PPI 私有定时器中断设置 方法2 XScuGic_Connect(GicInstancePtr, TimerIntrId, (Xil_ExceptionH...
57 XScuTimer_LoadTimer(timer_ptr, TIMER_LOAD_VALUE); // 加载计数周期 58 XScuTimer_EnableAutoReload(timer_ptr); // 设置自动装载模式 59 60 return XST_SUCCESS; 61 } 62 63 //定时器中断处理程序 64 void timer_intr_handler(void *CallBackRef) 65 { 66 //LED状态,用于控制LED灯状态翻转 67 ...
static void TimerIntrHandler(void *CallBackRef); int main() { XScuTimer_Config *TMRConfigPtr; //timer config printf("---START---\n"); // init_platform(); // //私有定时器初始化 TMRConfigPtr = XScuTimer_LookupConfig(TIMER_DEVICE_ID); XScuTimer_CfgInitialize(&Timer...
57static void TimerIntrHandler(void *CallbackRef) 58{ 59 XScuTimer *TimerInstancePtr = (XScuTimer *) CallbackRef; 60 if (XScuTimer_IsExpired(TimerInstancePtr)) 61 { 62 XScuTimer_ClearInterruptStatus(TimerInstancePtr); 63 TimerExpired=~TimerExpired; ...
使用私有定时器第一步当然是初始化配置,老套路调用XScuTimer_LookupConfig和XScuTimer_CfgInitialize两个函数。为了保证LED周期性闪烁,必须使能定时器的自动重载,这样每当计数器计数完成后会重新计数。之后最重要的是向定时器装载寄存器写入计数周期数值。实际上私有定时器是一个递减计数器,当从最大值递减到0时刻会产生...
();void Timer_intr_init(XScuGic *intr, XScuTimer *time);void Timer_IntrHandler(void *CallBackRef);int main(){//EMIO初始化Emio_init();//初始化定时器Timer_init();//初始化中断Timer_intr_init(&ScuGic,&Timer);//启动定时器XScuTimer_Start(&Timer);while(1);return 0;}void Emio_init()...
在TX任务、RX任务和TimerCallback中:TX任务代码RX任务TimerCallback代码更改应用程序项目的C/C++构建设置C/C++生成设置常规包括编译器目录包括在Vivado SDK中安装Percepio跟踪导出器插件我们必须安装可用于eclipse IDE的Percepio跟踪导出器插件。;选择帮助并单击“安装新软件”。
(* CallBack)(void *)){int Status;/* 停止全局定时器 */GT_WR_REG(GT_CTRL_REG, 0);/* 清空计数器低 32 位 */GT_WR_REG(GT_CNT_REG0, 0);/* 清空计数器高 32 位 */GT_WR_REG(GT_CNT_REG1, 0);/* 清除中断标志位 */GT_WR_REG(GT_INTR_STAT_REG, 1);/* 加载比较器低 32 位...