智能车制作

标题: 大神帮我看一下,死在中断里面了-- [打印本页]

作者: ▲_important゜    时间: 2014-3-23 20:32
标题: 大神帮我看一下,死在中断里面了--
#pragma CODE_SEG __NEAR_SEG NON_BANKED

void interrupt 66 Speed(void)
{
   LCD_Write_String(1,2,"u:");
   DisableInterrupts;

   speed=PACNT;
   PITTF_PTF0=1; //标志位清零
   PACNT=0;
   SCI_Write(speed&0x00ff);
   LCD_Write_Num(20,2,speed,3);

   EnableInterrupts;
我这样写--应该没有错的吧,串口能够正常显示数据,可是LCD全速运行就显示不了了,基本就在中断里面了--
小小的一个问题,望车友们稍微指点一下,感激--


作者: AI    时间: 2014-3-23 20:45
有必要每次进中断都DisableInterrupts嘛?
作者: ▲_important゜    时间: 2014-3-23 20:56
AI 发表于 2014-3-23 20:45
有必要每次进中断都DisableInterrupts嘛?

是没有必要,后来加进去可是结果还是一样啊

作者: AI    时间: 2014-3-23 22:38
LCD不动那就是LCD函数有问题,因为其他都是正常的啊
作者: 1174544639    时间: 2014-3-23 22:50
lcd这种东西这么耗时间怎么能放中断里????????
作者: ▲_important゜    时间: 2014-3-24 13:41
AI 发表于 2014-3-23 22:38
LCD不动那就是LCD函数有问题,因为其他都是正常的啊

那个的确是占了不少时间,谢谢你的提醒。还有就是中断计数脉冲的时候,出了中断就再进不去了,我定的10ms的计数周期,不能连续测啊-----请问,这是什么原因呢--

作者: AI    时间: 2014-3-24 14:24
10ms的话是不是计的脉冲太多发生了溢出,看看你的频率和编码器p数吧
作者: jamesdeep    时间: 2014-3-24 14:24
问题很明显,没有清中断标志位
作者: ▲_important゜    时间: 2014-3-24 19:30
jamesdeep 发表于 2014-3-24 14:24
问题很明显,没有清中断标志位

PITTF_PTF0=1; //标志位清零这个不能清除么?






欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2