OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4347|回复: 7

新人求助TIM1中断

[复制链接]

15

主题

36

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2016-3-25
在线时间
49 小时
发表于 2016-3-25 17:02:51 | 显示全部楼层 |阅读模式
6金钱
TIM1配置如下,进不了中断程序。求教各位前辈,哪里出了问题?
仿真数据TIM1_SR1寄存器UIF被硬件置1.这个时候是不是应该产生中断了?
但是进不了中断程序。

void TIM1_INIT(void)
{
TIM1_IER=0X00;  //设置时禁止所有中断产生
TIM1_CR1=0X20;  //0 01中央对齐向下计数 0000 0禁止计数
TIM1_CNTRH=0X00; //
TIM1_CNTRL=0XFF;
TIM1_ARRH=0X00;
TIM1_ARRL=0XFF;
TIM1_CR1|=0X01; //开启计数
TIM1_IER=0X01; //开启中断
}

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3990
金钱
3990
注册时间
2015-11-14
在线时间
541 小时
发表于 2016-3-25 17:02:52 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-3-26 13:05:34 | 显示全部楼层
帮顶
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6661
金钱
6661
注册时间
2016-5-29
在线时间
909 小时
发表于 2016-5-29 01:43:54 | 显示全部楼层
TIM1_EGR |= 0x01;
TIM1_ARRH=1100/256;
TIM1_ARRL=1100%256;
TIM1_PSCRH=0;
TIM1_PSCRL=127;
TIM1_IER |=0X01;
TIM1_BKR |= 0x80;       
TIM1_CR1 |=0X81;

试试这个..呵呵..
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-12-17
在线时间
1 小时
发表于 2016-12-17 13:37:47 | 显示全部楼层
不行啊
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-12-17
在线时间
1 小时
发表于 2016-12-17 13:41:43 | 显示全部楼层
volatile _Bool LED_ON3 @PD_ODR:0;
volatile _Bool LED_ON4 @PD_ODR:1;

void GpioInit(void)
{
    //LED
    PD_DDR = 0x03;  
    PD_CR1 = 0x00;  
    PD_CR2 = 0x00;
   
    //
}
void Tim1Init(void)
{
TIM1_EGR |= 0x01;
    TIM1_ARRH=1100/256;
    TIM1_ARRL=1100%256;
    TIM1_PSCRH=0;
    TIM1_PSCRL=127;
    TIM1_IER |=0X01;
    TIM1_BKR |= 0x80;        
    TIM1_CR1 |=0X81;

}
void main()
{
    //initial
    _asm("sim");
   
    ClockInit();
    GpioInit();
    Tim1Init();
   
    _asm("rim");
    //infiniti loop
    while (1)
    {
        if(flag1ms)
        {
            flag1ms=0;
            
            Led4Flash();
        }
    }
}

void Led4Flash(void)
{
    unsigned int i=0;
    u16 flag=0;
    if(++i > 1000) // 1s led flash
    {
        flag=!flag;
        if(flag)
            PD_ODR &= ~0x02;
        else
            PD_ODR |= 0x02;
    }
   
}
void Led3Flash(void)
{
    unsigned int i=0;
    u16 flag=0;
    if(++i > 1000) // 1s led flash
    {
        flag=!flag;
        if(flag)
            PD_ODR &= ~0x01;
        else
            PD_ODR |= 0x01;
   
    }
   
}
@far @interrupt void TIM1_Interrupt(void)
{
    flag1ms=1;
   
   
    TIM1_SR1 &= ~0x01;
}
这个程序灯为什么不闪啊,总是一直亮着,求指点
回复

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2110
金钱
2110
注册时间
2011-9-3
在线时间
119 小时
发表于 2016-12-19 09:07:45 | 显示全部楼层
检查一下相应的电源打开了吗?相应的中断使能开了吗
回复

使用道具 举报

头像被屏蔽

100

主题

111

帖子

0

精华

禁止发言

积分
416
金钱
416
注册时间
2017-2-5
在线时间
20 小时
发表于 2017-2-7 23:01:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 05:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表