你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2056|回复: 1

捕获中断设置

[复制链接]

17

主题

54

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-4-21 14:23:06 | 显示全部楼层 |阅读模式
请问STM8S103中设置捕获PC6的信号,这样设置可以吗?高低电平时间都要捕获
请问这样设置捕获可以吗?
TIM1_DeInit();
  TIM1-&gtSCRH=0X03;
TIM1-&gtSCRL=0X1F;//设置分频=800,计800/16=50us记数周期
TIM1->CCER1&=0XFE;//禁止输入捕获1
TIM1->CCMR1|=0X01;//PC6(CH1)到ti1fp1
TIM1->CCER1&=0XEC;//CH1 上升沿触发
TIM1->IER|=0X02;//势能中断CH1
TIM1->CCER1|=0X01;//使能输入捕获1
TIM1_Cmd(ENABLE);//使能计数
  rim();                // 允许CPU全局中断
 
中断中的程序如下:
if(TIM1_GetITStatus(TIM1_IT_CC1))
 {
   TIM1_ClearITPendingBit(TIM1_IT_CC1);
 if(GPIOC->IDR&0x40) TIM1->CCER1|=0X02;//ch1 下降沿触发
 else TIM1->CCER1&=0XEC;//ch1 上升沿触发
 tmpcntr=TIM1_GetCapture1();
 TIM1_Cmd(ENABLE);//使能计数
 }
回复

使用道具 举报

17

主题

54

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-4-23 09:19:13 | 显示全部楼层

RE:捕获中断设置

中断部分是这样的:
uint16_t Mt,St,tmpcntr;
INTERRUPT_HANDLER(TIM1_CAP_COM_IRQHandler, 12)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
int d,l,j,e,f;
  static int o=0,bs=0;
extern uchar Xsbuf[];
  uchar  h,i,b,Status[8],yxtrx[12],pluscode;

  static uint16_t G32Tosc=0;
if(TIM1_GetITStatus(TIM1_IT_CC1))
{
   TIM1_ClearITPendingBit(TIM1_IT_CC1);
if(GPIOC->IDR&0x40) TIM1->CCER1|=0X02;//ch1 下降沿触发
else TIM1->CCER1&=0XEC;//CH1 上升沿触发
tmpcntr=TIM1_GetCapture1();
TIM1_Cmd(ENABLE);//使能计数
}测试结果好象不能进入中断.请高手解答
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版