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

查看: 2062|回复: 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-&gt;IDR&amp;0x40) TIM1-&gt;CCER1|=0X02;//ch1 下降沿触发
else TIM1-&gt;CCER1&amp;=0XEC;//CH1 上升沿触发
tmpcntr=TIM1_GetCapture1();
TIM1_Cmd(ENABLE);//使能计数
}测试结果好象不能进入中断.请高手解答
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版