本帖最后由 34af9uc 于 2023-7-7 21:08 编辑
tim4怎么用
#include "SYSCFG.h"
#define led PA1
#define led_out TRISA1
volatile char W_TMP @ 0x70 ;//系统占用不可以删除和修改
volatile char BSR_TMP @ 0x71 ;//系统占用不可以删除和修改
void user_isr();//用户中断程序,不可删除
void interrupt ISR(void)
{
#asm;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
NOP;//系统设置不可以删除和修改
#endasm;//系统设置不可以删除和修改
user_isr(); //用户中断函数
}
void user_isr() //用户中断函数
{
if(T4UIE && T4UIF)
{
T4UIF = 1; //写1清零标志位
if(led =1){led =0;} else{led =1;}
}
}
main()
{
//TIM4EN =1; //TIM4 模块时钟
T4ARPE =0; //计数周期的自动预装载
T4CKS1 =0; //00 = Sysclk
T4CKS0 =0;
T4OPM =0; //单脉冲模式关闭
T4URS =1; //计数器上溢
T4UDIS =0; //产生更新事件控允许
T4CEN =1; //TIM4 计数使能
T4PSC2 =1; //Timer4 预分频100 = 16
T4PSC1 =0;
T4PSC0 =0;
//T4CNT
TIM4ARR =0x7f; //预装载值
TIM4EN =1; //TIM4 模块时钟
GIE =1; //全局中断
PEIE =1; //外设总中断
T4UIE =1; //允许更新中断
//T4UIF //更新事件中断标志位
led_out =0; //0输出
led =1;
led =0;
while(1);
}
|