打印
[STM8]

STM8S105TIM1捕获问题

[复制链接]
4725|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzjgod|  楼主 | 2011-7-1 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近做了一个电路,TIM1的通道1PWM输出,TIM1的通道2PWM输入,捕获高电平时间,通道1的PWM信号转换成三角波后,通过比较器转换成PWM信号。

初始化程序:

  TIM1_ARRH = 0xff;     //分频
  TIM1_ARRL = 0xff;
  
  TIM1_PSCRH = 0;
  TIM1_PSCRL = 14;
  
  TIM1_CCR1H = 0;     //占空比
  TIM1_CCR1L = 0;
  
  TIM1_CCMR1_OC1M = 6;  //PWM模式1
  TIM1_CCMR1_OC1PE = 1; //开启TIM1_CCR1寄存器的预装载功能

TIM1_CCER1_CC2E = 0; //禁止通道2

TIM1_CCMR2_CC2S = 1; //通道2输入,TI2FP2
TIM1_CCER1_CC2P = 0; //高电平有效
TIM1_CCMR2 &= 0x03;  //捕获滤波、分频
  
//TIM1_SMCR_TS = 6;   //滤波后的定时器输入2(TI2FP2)
//TIM1_SMCR_SMS = 4;
//000:时钟/触发控制器禁止 – 如果CEN=1,则预分频器直接由内部时钟驱动。
//001:编码器模式1 – 根据TI1FP1的电平,计数器在TI2FP2的边沿向上/下计数。
//010:编码器模式2 – 根据TI2FP2的电平,计数器在TI1FP1的边沿向上/下计数。
//011:编码器模式3 – 根据另一个输入的电平,计数器在TI1FP1和TI2FP2的边沿向上/下计数。
//100:复位模式 – 在选中的触发输入(TRGI)的上升沿时重新初始化计数器,并且产生一个更新寄存器的信号。
//101:门控模式 – 当触发输入(TRGI)为高时,计数器的时钟开启。一旦触发输入变为低,则计数器停止(但不复位)。计数器的启动和停止都是受控的。
//110:触发模式 – 计数器在触发输入TRGI的上升沿启动(但不复位),只有计数器的启动是受控的。
//111:外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器。

//  TIM1_EGR_UG = 1;      //用于产生更新事件
  
  TIM1_CCER1_CC1P = 0;  //OC1高电平有效
  TIM1_CCER1_CC1E = 1;  //开启OC1信号输出到对应的输出引脚,其输出电平依赖于MOE,OSSI,OSSR,OIS1,OIS1N和CC1NE位的值
  TIM1_CCER1_CC1NE = 0; //开启OC1N信号输出到对应的输出引脚,其输出电平依赖于MOE,OSSI,OSSR,OIS1,OIS1N和CC1N位的值

  TIM1_OISR_OIS1 = 0;
  TIM1_OISR_OIS1N = 0;
  TIM1_BKR_OSSR = 0;    //定时器不工作时禁止输出
  TIM1_BKR_OSSI = 0;
  
  TIM1_CR1_CMS = 0;     //边沿对齐模式
  TIM1_CR1_DIR = 0;     //计数器向上计数
  TIM1_CR1_UDIS = 0;    //使能更新事件
  
  TIM1_BKR_LOCK = 2;

TIM1_IER_CC2IE = 1;  //允许捕获比较2中断

TIM1_CCER1_CC2E = 1; //使能输入捕获
  TIM1_CR1_CEN = 1;     //使能计数器
TIM1_BKR_MOE = 1;     //使能PWM输出

整完之后发现TIM1_CCR2H,L的值很稳定,就比TIM1_CCR1H,L大2,开中断和不开中断一个效果,能进中断,但是SR1,SR2的标志位很诡异,明明是0了还进中断,主程序也能跑到,修改TIM1_SMCR寄存器,不是没有PWM输出了,就是跟以前效果一样,各位大神,有没有人给点意见啊!!
沙发
yzjgod|  楼主 | 2011-7-1 12:17 | 只看该作者
本帖最后由 yzjgod 于 2011-7-1 12:47 编辑

结贴了?怎么新发个帖子就自动结了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

370

帖子

2

粉丝