注册 登录
查看: 447|回复: 24

山外哥,DMA和PIT配置优先级的地方在哪?如何设置DMA优先级高于PIT?

[复制链接]
发表于 2014-5-8 12:28:08 | 显示全部楼层 |阅读模式
不知道怎么改优先级。。。
回复

使用道具 举报

 楼主| 发表于 2014-5-8 12:29:17 | 显示全部楼层
还有就是摄像头采集加处理的时间怎么调到最低???
回复 支持 反对

使用道具 举报

发表于 2014-5-8 12:34:27 | 显示全部楼层
淘贴 —— K60 里面就有帖子配置优先级的。

采集时间,只能提高帧率,而处理时间,这个靠你的算法优化能力,或者超频,但超频会导致不稳定。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 13:11:27 | 显示全部楼层
韦嘉淑 发表于 2014-5-8 12:34
淘贴 —— K60 里面就有帖子配置优先级的。

采集时间,只能提高帧率,而处理时间,这个靠你的算法优化能 ...

扫描10行和提起出黑线中点的算法时间用了13ms,摄像头采集用了8毫秒,解压用了1毫秒。频率PLL150应该比较高了吧?如果我要是想200超频怎么协调改?
回复 支持 反对

使用道具 举报

发表于 2014-5-8 13:14:52 | 显示全部楼层
2361431390 发表于 2014-5-8 13:11
扫描10行和提起出黑线中点的算法时间用了13ms,摄像头采集用了8毫秒,解压用了1毫秒。频率PLL150应该比较高 ...

FX 超到 200M可以,但DN就不要超到200M了,150M就好了。

解压,应该没有1ms吧,之前测了才100多ns。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 13:32:40 | 显示全部楼层
栾端静 发表于 2014-5-8 13:14
FX 超到 200M可以,但DN就不要超到200M了,150M就好了。

解压,应该没有1ms吧,之前测了才100多ns。

我的是FX如何改到超频200,求指导。。。。发个图看看。谢谢喽。。。
回复 支持 反对

使用道具 举报

发表于 2014-5-8 13:36:24 | 显示全部楼层
2361431390 发表于 2014-5-8 13:32
我的是FX如何改到超频200,求指导。。。。发个图看看。谢谢喽。。。

这帖子就有图的,PLL 改成 200M 就好了,bus 100M

K60 KL26 主频和总线频率的关系 - 智能车资料区 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... p;tid=81&ctid=1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 13:39:59 | 显示全部楼层
韦嘉淑 发表于 2014-5-8 12:34
淘贴 —— K60 里面就有帖子配置优先级的。

采集时间,只能提高帧率,而处理时间,这个靠你的算法优化能 ...

/************************ 配置 K60 的优先级  ***********************/
    //K60 的默认优先级 都为 0
    //参考帖子:急求中断嵌套的例程 - 智能车讨论区 - 山外-vcan123论坛
    //          http://www.vcan123.com/forum.php ... &page=1#pid3270
    NVIC_SetPriorityGrouping(4);            //设置优先级分组,4bit 抢占优先级,没有亚优先级

    NVIC_SetPriority(PORTA_IRQn,0);         //配置优先级
    NVIC_SetPriority(PORTE_IRQn,1);         //配置优先级
    NVIC_SetPriority(DMA0_IRQn,2);          //配置优先级
    NVIC_SetPriority(PIT0_IRQn,3);          //配

依据山外哥这个为例子,我这样让DMA优先级>PIT优先级>PTA图像场中断优先级,下面这样改代码对不对?
NVIC_SetPriorityGrouping(4);            //设置优先级分组,4bit 抢占优先级,没有亚优先级

    NVIC_SetPriority(PORTA_IRQn,1);         //配置优先级
    NVIC_SetPriority(PIT0_IRQn,2);          //配置优先级
    NVIC_SetPriority(DMA0_IRQn,3);          //配
回复 支持 反对

使用道具 举报

发表于 2014-5-8 13:57:03 | 显示全部楼层
2361431390 发表于 2014-5-8 13:39
/************************ 配置 K60 的优先级  ***********************/
    //K60 的默认优先级 都为 ...

优先级号越小,优先级越高!!!!
PTA图像场中断优先级 要高于 PIT优先级 ,不然不能及时触发DMA请求
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 14:10:43 | 显示全部楼层
栾端静 发表于 2014-5-8 13:36
这帖子就有图的,PLL 改成 200M 就好了,bus 100M

K60 KL26 主频和总线频率的关系 - 智能车资料区 - 野 ...

谢谢。。。。
回复 支持 反对

使用道具 举报

发表于 2014-5-8 14:14:46 | 显示全部楼层
2361431390 发表于 2014-5-8 13:11
扫描10行和提起出黑线中点的算法时间用了13ms,摄像头采集用了8毫秒,解压用了1毫秒。频率PLL150应该比较高 ...

不会吧,这么长时间!!!那方向控制的周期不就得拉长一点才行了,15ms根本就不够,20也危险
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 14:14:53 | 显示全部楼层
栾端静 发表于 2014-5-8 13:57
优先级号越小,优先级越高!!!!
PTA图像场中断优先级 要高于 PIT优先级 ,不然不能及时触发DMA请求

额,我还以为是号越大优先级越高呢。那场中断PTA和DMA哪个个优先级高点好呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 14:18:15 | 显示全部楼层
草原上的星星 发表于 2014-5-8 14:14
不会吧,这么长时间!!!那方向控制的周期不就得拉长一点才行了,15ms根本就不够,20也危险

恩,刚才超频PLL244后速度又提上来一些。剩下的优化黑线提取方案了。。。
回复 支持 反对

使用道具 举报

发表于 2014-5-8 14:18:41 | 显示全部楼层
栾端静 发表于 2014-5-8 13:36
这帖子就有图的,PLL 改成 200M 就好了,bus 100M

K60 KL26 主频和总线频率的关系 - 智能车资料区 - 野 ...

我现在只能用150,其他的都出问题,这是怎么回事,如果要改成PLL200的话,需要修改几个地方?
  1. #elif defined(MK60F15)

  2. #define CORE_CLK                PLL150      // 从 PLL_e 里选择 已提供的 配置方案
  3.                                             // bus 、 flex bus 、 flash 频率 都是 core 整数倍分频而来
  4. #define MAX_BUS_CLK             200         // bus      (bus        >= core/16  )
  5. #define MAX_FLEXBUS_CLK         50          // flex bus (flex bus   >= core/16  )
  6. #define MAX_FLASH_CLK           25          // flash    (flash      >= core/16  )

  7. #endif
回复 支持 反对

使用道具 举报

发表于 2014-5-8 14:20:39 | 显示全部楼层
2361431390 发表于 2014-5-8 14:18
恩,刚才超频PLL244后速度又提上来一些。剩下的优化黑线提取方案了。。。

我也想超频!!!可是我现在只能用150,244你是怎么做到的啊????我发现244的话液晶屏会卡死,而且天知道哪地方会出什么其他问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 14:23:12 | 显示全部楼层
草原上的星星 发表于 2014-5-8 14:18
我现在只能用150,其他的都出问题,这是怎么回事,如果要改成PLL200的话,需要修改几个地方?

pLL和BUS之间有关系好像。120—60,200—100,244—200。我记得他们之间有关系的,只是不知道怎么计算什么关系。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 14:27:04 | 显示全部楼层
草原上的星星 发表于 2014-5-8 14:20
我也想超频!!!可是我现在只能用150,244你是怎么做到的啊????我发现244的话液晶屏会卡死,而且天知 ...

244的话,把液晶去掉,他的运行会大大的影响处理时间的,。。。不能要液晶。
回复 支持 反对

使用道具 举报

发表于 2014-5-8 14:31:44 | 显示全部楼层
2361431390 发表于 2014-5-8 14:27
244的话,把液晶去掉,他的运行会大大的影响处理时间的,。。。不能要液晶。

你意思是把车上的液晶去掉?这个可以,因为我一般用调试器看图像。不过那个时间你是怎么算出来的,我也想试试,之前也听别人说过,不过不会做,你是怎么做的
回复 支持 反对

使用道具 举报

发表于 2014-5-8 14:40:07 | 显示全部楼层
草原上的星星 发表于 2014-5-8 14:31
你意思是把车上的液晶去掉?这个可以,因为我一般用调试器看图像。不过那个时间你是怎么算出来的,我也想 ...

山外哥的代码有PIT计数函数
回复 支持 反对

使用道具 举报

发表于 2014-5-8 15:23:52 | 显示全部楼层
2361431390 发表于 2014-5-8 13:11
扫描10行和提起出黑线中点的算法时间用了13ms,摄像头采集用了8毫秒,解压用了1毫秒。频率PLL150应该比较高 ...

我晕,都超频成200了,解压时间是3ms左右。而且我整个while循环里面总共31ms,天啊!!!!!方向控制没法弄了
回复 支持 反对

使用道具 举报

发表于 2014-5-8 15:25:32 | 显示全部楼层
草原上的星星 发表于 2014-5-8 15:23
我晕,都超频成200了,解压时间是3ms左右。而且我整个while循环里面总共31ms,天啊!!!!!方向控制没法 ...

解压哪有 3ms 那么大啊
回复 支持 反对

使用道具 举报

发表于 2014-5-8 15:25:34 | 显示全部楼层
缑萱彤 发表于 2014-5-8 14:40
山外哥的代码有PIT计数函数

嗯,刚刚找到了
回复 支持 反对

使用道具 举报

发表于 2014-5-8 15:26:50 | 显示全部楼层
阙云亭 发表于 2014-5-8 15:25
解压哪有 3ms 那么大啊

是的啊,我用的是PIT计时,在解压之前是17ms左右,解压之后是20ms左右
回复 支持 反对

使用道具 举报

发表于 2014-5-8 15:29:12 | 显示全部楼层
草原上的星星 发表于 2014-5-8 15:26
是的啊,我用的是PIT计时,在解压之前是17ms左右,解压之后是20ms左右

你怎么测的?不要把采集函数也加进去。
回复 支持 反对

使用道具 举报

发表于 2014-5-8 15:31:16 | 显示全部楼层
阙云亭 发表于 2014-5-8 15:29
你怎么测的?不要把采集函数也加进去。
  1. pit_time_start  (PIT0);                 //开始计时


  2.       timevar = pit_time_get_us    (PIT0);    //获取计时时间
  3.         pit_time_close  (PIT0);
  4.         printf("\n\n计时时间为:%dus",timevar); //打印延时时间
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部