打印
[其他ST产品]

帮忙看下这段程序哪里问题

[复制链接]
3749|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pp99sky|  楼主 | 2007-1-4 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序运行到EIC_IRQConfig( ENABLE );就不执行了,屏蔽掉可继续执行,但不能中断了,不知道是哪里出错了?还请指教。

         LCD_Init();
    AD_Init();

    TIM_Init(TIM0);
    EIC_Init();

    TIM_PrescalerConfig(TIM0, 0x0);
    TIM_ITConfig(TIM0, TIM_TO_IT, ENABLE);
    TIM_OCMPModeConfig(TIM0, TIM_CHANNEL_A, 0x01, TIM_TIMING, TIM_HIGH);
     TIM_CounterConfig(TIM0, TIM_STOP);
     TIM_CounterConfig(TIM0, TIM_CLEAR);
    
    EIC_IRQChannelPriorityConfig( T0TIMI_IRQChannel,2);
     EIC_IRQChannelConfig( T0TIMI_IRQChannel, ENABLE ); 
     GPIO_Config(GPIO0,0X0040,GPIO_IN_TRI_TTL);
    
         XTI_Init();          
     XTI_LineModeConfig(XTI_Line11, XTI_FallingEdge);      XTI_LineConfig(XTI_Line11, ENABLE);   
     XTI_ModeConfig(XTI_Interrupt, ENABLE);            
    EIC_IRQChannelPriorityConfig(XTI_IRQChannel,3);      EIC_IRQChannelConfig(XTI_IRQChannel,ENABLE);      //EIC_IRQConfig( ENABLE );       
沙发
ST_ARM| | 2007-1-4 16:45 | 只看该作者

去掉EIC_Init();

使用特权

评论回复
板凳
pp99sky|  楼主 | 2007-1-4 16:49 | 只看该作者

去掉也是那样,走到EIC_IRQConfig( ENABLE ); 就停了

使用特权

评论回复
地板
em_fsd| | 2007-1-4 21:24 | 只看该作者

是不是不停地进中断啊?中断后标志没清?

使用特权

评论回复
5
pp99sky|  楼主 | 2007-1-5 09:38 | 只看该作者

是一直在中断,我再找找原因

使用特权

评论回复
6
ST_ARM| | 2007-1-5 12:55 | 只看该作者

这段代码没有什么问题

估计问题在其他地方。从这段代码中发现不了。说说你的调试流程。

使用特权

评论回复
7
pp99sky|  楼主 | 2007-1-5 14:23 | 只看该作者

好象程序运行的速度慢,中断间隔比较短,外部中断没有执

再问下,随时打开和关闭定时器是不是用这个函数,EIC_IRQChannelConfig( T0TIMI_IRQChannel, ENABLE );别的好象不太好使。
还有就是我只用定时器中断时,还是这个时间间隔,假如我中断10次用上面函数关掉,在主程序中再打开,可以操作。但当我在定时中断程序中多加了几行代码,再进行操作时只完成一次循环,比如10次,主程序再打开定时期也不再执行。
二分频主频,如下配置,时间应该是多少。
 TIM_PrescalerConfig(TIM0, 0x0);

TIM_AddOCMPCounterValue(TIM0, 3780);

使用特权

评论回复
8
ST_ARM| | 2007-1-8 11:02 | 只看该作者

要看你的系统时钟的频率

TIM_PrescalerConfig(TIM0, 0x0); ---这个是一分频,二分频应为0x01

TIM_AddOCMPCounterValue(TIM0, 3780);---3780是每次中断的定时器内部时钟的脉冲个数。

使用特权

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

本版积分规则

6

主题

43

帖子

0

粉丝