使用timer定時器組件和interrupt 設計定時器溢出中斷
1.設計Psoc原理圖
整個原理圖如下所示,添加要給定時器和output IO,定時器的interrupt連接一個Interrupt,並命名爲timeISR
按如下圖,設置Timer定時器的參數,使其溢出週期爲1ms。
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. */
}
}