打印

又玩定时TIMER4

[复制链接]
398|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2023-11-13 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
又玩定时TIMER4,这次给自己挖了个坑 ,最后打开定时器时钟,结果就是不进中断,对照列程才发现.
#include        "SYSCFG.h"
volatile char W_TMP  @ 0x70 ;//系统占用不可以删除和修改
volatile char BSR_TMP  @ 0x71 ;//系统占用不可以删除和修改
void user_isr();//用户中断程序,不可删除
volatile char a1;
#define                led                        PA1
#define                led_out                TRISA1
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() //用户中断函数
{
//led=~led;
//if(led){ led =0;} else{led=1;}
if(T4UIE&&T4UIF)
        {
        T4UIF                =1;
//   led=~led;
        a1                        ++;
        if(a1 >50)
                {
                a1                =0;
                led=~led;
        //if(led){ led =0;} else{led=1;}
                }

        }
}

main()
{
TIM4EN        =1;                //TIM4 模块时钟
SYSON                =0;                //睡眠模式下,系统时钟控制
T4ARPE                =1;                //计数周期的自动预装载
T4CKS1                =0;                //00=Sysclk
T4CKS0                =0;
T4OPM                =0;                //单脉冲模式关闭
T4URS                =1;                //更新事件中断源计数器上溢

T4UDIS                =0;                //产生更新事件控制0=允许
T4CEN                =1;                //TIM4 计数器使能
T4PSC2                =1;                //Timer4预分频器110 = 64
T4PSC1                =1;
T4PSC0                =1;
//T4CNT                                //Timer4计数值
TIM4ARR                =0x7f;        //预装载值
//TIM4ARR                =0xfe;        //预装载值


GIE                        =1;                //全局中断
PEIE                =1;                //外设总中断
T4UIE                =1;                //Timer4 更新事件中断
//T4UG                =1;                //Timer4 更新事件软件中断
//T4UIF


led_out                =0;
led                        =0;

while(1)
{
//led=~led;
}

}
//===========================================================


141.zip

814 Bytes

使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

300

主题

457

帖子

59

粉丝