OpenEdv-开源电子网

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

TIM1 定时 200US 怎么写. 和通用定时器一样吗?发个通用定时器

[复制链接]

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-6-24
在线时间
0 小时
发表于 2012-7-31 23:24:06 | 显示全部楼层 |阅读模式

void Timer2_Init(u16 arr,u16 psc)
{
 RCC->APB1ENR|=1<<0;//TIM3时钟使能
 TIM2->ARR=arr;  //设定计数器自动重装值//刚好1ms
 TIM2->SC=psc;  //预分频器7200,得到10Khz的计数时钟
 //这两个东东要同时设置才可以使用中
 TIM2->DIER|=1<<0;   //允许更新中
 TIM2->DIER|=1<<6;   //允许触发中
 TIM2->CR1|=0x01;    //使能定时器3

 MY_NVIC_Init(1,3,TIM2_IRQChannel,2);//抢占1,子优先级3,组2

}

void TIM2_IRQHandler(void)
{
 if(TIM2->SR&0X0001)//溢出中
 {
 ;//LED0=1; 
 }
 TIM2->SR&=~(1<<0);//清除中断标志位
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-7-31 23:30:45 | 显示全部楼层
试试就知道了.是一样的.
只是频率有点区别
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-6-24
在线时间
0 小时
 楼主| 发表于 2012-7-31 23:31:14 | 显示全部楼层
 自己顶一下
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-6-24
在线时间
0 小时
 楼主| 发表于 2012-7-31 23:32:15 | 显示全部楼层
进不了中断啊??大哥
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-6-24
在线时间
0 小时
 楼主| 发表于 2012-7-31 23:34:54 | 显示全部楼层

帖一个 TIME1  定时中断
void TIM1_UP_IRQChannel(void)
{
 if(TIM1->SR&0X0001)//溢出中
 {
    LED0=1; 
 }
 TIM1->SR&=~(1<<0);//清除中断标志位
}
void Timer1_Init(u16 arr,u16 psc)
{
 RCC->APB1ENR|=1<<11;//TIM5时钟使能
 TIM1->ARR=arr;  //设定计数器自动重装值//刚好1ms
 TIM1->SC=psc;  //预分频器7200,得到10Khz的计数时钟
 //这两个东东要同时设置才可以使用中
 TIM1->DIER|=1<<0;   //允许更新中
 TIM1->DIER|=1<<6;   //允许触发中
 TIM1->CR1|=0x01;    //使能定时器3

 MY_NVIC_Init(1,1,TIM1_IRQChannel,2);//抢占1,子优先级3,组2
}
不行啊???

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-8-1 01:30:50 | 显示全部楼层
回复【5楼】KBLEE:
---------------------------------
 把TIM1_UP_IRQChannel改为TIM1_UP_IRQHandler
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

158

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
400
金钱
400
注册时间
2011-11-23
在线时间
0 小时
发表于 2012-8-1 08:44:12 | 显示全部楼层
回复【楼主位】KBLEE:
---------------------------------
#include "timer.h"
#include "led.h"

void TIM1_UP_IRQHandler(void)

    static u8 i=0;             
if(TIM1->SR&0X0001)//溢出中断
{
    i=++i%10;
    if(i==9)LED=!LED; //控制1S钟闪烁                    
}    
TIM1->SR&=~(1<<0);//清除中断标志位      
}    
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void WM_Init(u16 arr,u16 psc)
{    
RCC->APB2ENR|=1<<11;       //TIM1时钟使能    
RCC->APB2ENR|=1<<2;       //PORTA时钟使能  
RCC->APB2ENR|=1<<3;       //PORTB时钟使能  

GPIOA->CRH&=0XFFFF0000;//PA8、9、10、11输出
GPIOA->CRH|=0X0000BBBB;//复用推挽输出
GPIOA->ODR|=0X0F00;//输出高电平

  
GPIOB->CRH&=0X000FFFFF;//PB13、14、15输出
GPIOB->CRH|=0XBBB00000;//复用推挽输出    
GPIOB->ODR|=7<<13;//输出高电平

TIM1->ARR=arr;//设定计数器自动重装值从0-9999一共计数10000次 
TIM1->SC=psc;//预分频器不分频

TIM1->CCMR1|=7<<4; //CH1 WM模式2    
TIM1->CCMR1|=1<<3; //CH1预装载使能
TIM1->CCMR1|=7<<12;    
TIM1->CCMR1|=1<<11;//CH2预装载使能
TIM1->CCMR2|=7<<4;    
TIM1->CCMR2|=1<<3; //CH3预装载使能
TIM1->CCMR2|=6<<12; //CH4 WM模式1  
TIM1->CCMR2|=1<<11; //CH4预装载使能
   
TIM1->CCER|=1<<0;   //CH1 输出使能
TIM1->CCER|=1<<2;   //CH1N 输出使能
TIM1->CCER|=1<<4;   //CH2 输出使能
TIM1->CCER|=1<<6;   //CH2N 输出使能
TIM1->CCER|=1<<8;   //CH3 输出使能
TIM1->CCER|=1<<10;  //CH3N 输出使能
TIM1->CCER|=1<<12;  //CH4 输出使能    

TIM1->CR1|=1<<7;   //ARPE使能 
TIM1->CR1|=1<<0;    //使能定时器1 

    TIM1->BDTR|=1<<15;

TIM1->CCR1=3000;
TIM1->CCR2=4000;
TIM1->CCR3=5000;
TIM1->CCR4=6000;

TIM1->DIER|=1<<0;   //允许更新中断    
   MY_NVIC_Init(2,3,TIM1_UP_IRQChannel,2);//抢占2,子优先级3,组2   
}    
高级定时器1七路输出,该程序通过TIM1控制PA8、PA9、PA10、PA11、PB13、PA14、PA15一共7路PWM输出,可用软件或示波器查看效果
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-6-24
在线时间
0 小时
 楼主| 发表于 2012-8-1 11:24:45 | 显示全部楼层
回复【7楼】shuilian007:
---------------------------------
 TIME1  定时中断   进不了中断
这个设置有问题
void Timer1_Init(u16 arr,u16 psc)
{
 RCC->APB1ENR|=1<<11;//TIM1时钟使能
 TIM1->ARR=arr;  //设定计数器自动重装值//刚好1ms
 TIM1->SC=psc;  //预分频器7200,得到10Khz的计数时钟
 //这两个东东要同时设置才可以使用中
 TIM1->DIER|=1<<0;   //允许更新中
 TIM1->DIER|=1<<6;   //允许触发中
 TIM1->CR1|=0x01;    //使能定时器1
TIM1->CR1|=0x07;    //使能定时器1
}




 
void TIM1_UP_IRQHandler(void) 
{  
    static u8 i=0;              
if(TIM1->SR&0X0001)//溢出中断 

    i=++i%10; 
    if(i==9)LED=!LED; //控制1S钟闪烁                     
}     
TIM1->SR&=~(1<<0);//清除中断标志位       
}     


回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-6-24
在线时间
0 小时
 楼主| 发表于 2012-8-1 16:53:04 | 显示全部楼层
 TIME1  定时计数 中断  不是PWM   进不了中断 
这个设置有问题 
如楼上贴.....帮忙啊...............
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2012-8-1
在线时间
0 小时
发表于 2012-8-10 11:16:38 | 显示全部楼层
回复【9楼】KBLEE:
---------------------------------
六楼的很给力哦,顶一下。
回复 支持 反对

使用道具 举报

8

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2012-9-4
在线时间
0 小时
发表于 2012-11-3 14:03:31 | 显示全部楼层
回复【7楼】shuilian007:
---------------------------------
试了一下,好像不行额?
回复 支持 反对

使用道具 举报

36

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
244
金钱
244
注册时间
2012-11-11
在线时间
14 小时
发表于 2012-11-17 19:24:56 | 显示全部楼层
顶一个
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1852
金钱
1852
注册时间
2012-9-16
在线时间
287 小时
发表于 2012-11-17 21:49:07 | 显示全部楼层
还没进吗? 
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 22:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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