Psoc学习笔记——Timer定时器中断

时间:2024-03-17 22:02:22

使用timer定时器组件和interrupt 设计定时器溢出中断

1.设计Psoc原理图

整个原理图如下所示,添加要给定时器和output IO,定时器的interrupt连接一个Interrupt,并命名为timeISR
Psoc学习笔记——Timer定时器中断
按如下图,设置Timer定时器的参数,使其溢出周期为1ms。
Psoc学习笔记——Timer定时器中断

2.程序设计

main.c文件中代码如下

#include "project.h"
void led_negation()
{
    led_Write(~led_Read());
}

uint16 timeCnt = 0;
// 定义中断函数,函数句柄为 time1_interruptHander
CY_ISR_PROTO(time1_interruptHander)
{
    Timer_1_STATUS;	// 没有这个只能中断一次
    if(++timeCnt%200 == 0)
    {
        timeCnt = 0;
        led_negation();
    }
}

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */
    timeISR_StartEx(time1_interruptHander);
    Timer_1_Start();
    
    led_Write(1);
    for(;;)
    {
        /* Place your application code here. */
    }
}