智能车制作

标题: ccd循迹算法没问题,但就不稳定,已近找出了原因中发现一个大的问题,,希望大家交流 [打印本页]

作者: wen123    时间: 2013-5-26 13:46
标题: ccd循迹算法没问题,但就不稳定,已近找出了原因中发现一个大的问题,,希望大家交流
ccd循迹算法没问题,但就不稳定,已近找出了原因中发现一个大的问题,,希望大家交流
大家好!!我找了好久标志位也设了,,可车有时候就发生异常的转弯误判,,,通过排查,,发现我改变采集时间就会好很多,,确定是ccd采集的原因,没有及时的采集完就进行方向控制了,ccd采集放在main中(方向控制5ms),所以打算再开一个10ms的中断,可我设置的都没错,可就是中断进不去啊,屏蔽一个就可以进去,这是什么原因??下面是初始化的函数(学长说是优先级的问题,但我没设置应该有一个默认的优先级吧,Pit0中断号66.中断Pit1中断号67应该也没错),而且开两中断下程序下不进去,,求大家帮帮忙,谢谢了!!!!!!
void  Pit0_Init(void)
{
    PITCFLMT_PITE=0;        // 关闭PIT0
    PITCE_PCE0=1;           //使用PIT0
    PITCE_PCE1=1;           //使用PIT1           //使用PIT1
    PITMUX_PMUX0=0;         //PIT0选用使用微定时器  0
     PITMUX_PMUX1=0;         //PIT0选用使用微定时器  01        //PIT0选用使用微定时器  01
    PITMTLD0=255;           //micro time base 0 equals 255 clock cycles
    PITLD0=250-1;           //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS.
               //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS.
    //时间计算:
    //256 * 250 * /64000000 = 1ms.
  //  PITINTE_PINTE0=1;       // 允许PIT0中断
     
            // 允许PIT0中断
   // PITCFLMT_PITE=1;
     
   // PITCFLMT_PITE=0;        // 关闭PIT0
             //使用PIT0
    //PITCE_PCE1=1;           //使用PIT1
           //PIT0选用使用微定时器  0
   
              //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS.
     PITMTLD1=255;           //micro time base 0 equals 255 clock cycles
    PITLD1=2500-1;           //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS.
    //时间计算:
    //256 * 250 * /64000000 = 1ms.
     PITINTE_PINTE0=1;       // 允许PIT0中断
     PITINTE_PINTE1=1;       // 允许PIT0中断
    PITCFLMT_PITE=1;        //打开PIT0
}

作者: wen123    时间: 2013-5-26 13:46
自己先顶!!!!!!!!!!!!!
作者: 山人    时间: 2013-5-26 13:57
怎么采集?
作者: wen123    时间: 2013-5-26 14:09
山人 发表于 2013-5-26 13:57
怎么采集?

ad采集啊,单通道单次
作者: 沫XY    时间: 2013-5-26 14:32
帮顶!
作者: 星斗520    时间: 2013-5-26 15:19
可以在一个中断里数据
INT_count++;
if(INT_count>=2)
INT_count=0;

if(INT_count==0)
{
采集
}else
if(INT_count==1)
{
处理
}

问一下 你们CCD采集的时候 曝光时间是怎么处理的 固定的还是 动态的?我们的采集的 点很分散 值又很低!!


作者: wen123    时间: 2013-5-26 15:48
星斗520 发表于 2013-5-26 15:19
可以在一个中断里数据
INT_count++;
if(INT_count>=2)

我换大光圈的

作者: wen123    时间: 2013-5-26 15:52
沫XY 发表于 2013-5-26 14:32
帮顶!

谢谢
作者: 猥琐道士    时间: 2013-5-26 15:58
学习~~~
作者: 晓新没蜡笔    时间: 2013-5-26 17:04
不知道LZ现在的直立跟速度控制那解决的咋样了?能否说说是怎么解决的啊
作者: wen123    时间: 2013-5-26 18:28
@bobo_12300  @晓新没蜡笔
作者: wen123    时间: 2013-5-26 18:30
@豪杰ccd有视频
作者: 风飘飘    时间: 2013-5-27 02:05
:)
作者: 割麦子    时间: 2013-5-27 08:31
你学长说的没错,是中断优先级的问题,你说的那是66和67是中断号,不是中断优先级,这两个中断属于同一优先级,当然无法中断嵌套了
作者: zhyyy    时间: 2013-5-27 12:24
wen123 发表于 2013-5-26 15:48
我换大光圈的

能问下大光圈是什么吗?

作者: zhyyy    时间: 2013-5-27 12:27
星斗520 发表于 2013-5-26 15:19
可以在一个中断里数据
INT_count++;
if(INT_count>=2)

能问下ccd采集放在中端里多长时间处理一次比较好吗?
我是20ms采集一次模仿蓝宙的。

作者: zhyyy    时间: 2013-5-27 12:35
wen123 发表于 2013-5-26 15:48
我换大光圈的

能问下大光圈是什么吗?

作者: wen123    时间: 2013-5-27 12:44
割麦子 发表于 2013-5-27 08:31
你学长说的没错,是中断优先级的问题,你说的那是66和67是中断号,不是中断优先级,这两个中断属于同一优先 ...

谢谢。。。。。。。。。。。。。。

作者: wen123    时间: 2013-5-27 12:46
zhyyy 发表于 2013-5-27 12:27
能问下ccd采集放在中端里多长时间处理一次比较好吗?
我是20ms采集一次模仿蓝宙的。

10ms更低一点好像会更好,,,,看你的个方面而言啦

作者: wen123    时间: 2013-5-27 12:46
zhyyy 发表于 2013-5-27 12:35
能问下大光圈是什么吗?

进光量比较多的一种镜头

作者: 与世无争    时间: 2013-5-27 12:54
为什么用两个中断?
作者: 驻足在...    时间: 2013-5-27 17:05
虽然PIT管脚之间的中断优先级有所区别,但是xs128大优先级分布来说,pit之间是属于同一个级别的中断,所以只要进了优先级稍微高的就会自动屏蔽同一个大优先级的中断。
作者: wen123    时间: 2013-5-27 17:16
驻足在... 发表于 2013-5-27 17:05
虽然PIT管脚之间的中断优先级有所区别,但是xs128大优先级分布来说,pit之间是属于同一个级别的中断,所以只 ...

喔,,,就是要设置一下优先级??那为啥我现在解决了,,是这么解决的也可以,就是进入pit0后我把pit0的使能端关掉,,最后再打开,,pit1也一样的,,为啥也可以??
作者: 驻足在...    时间: 2013-5-27 17:21
。。。。以前学微机的时候记得好像是中断响应后,假如中断标志位为一,那么其他中断就不会被响应吧,所以中断响应后必须把标志位清掉。。。。




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