智能车制作

标题: 请教火哥关于野火底层库DMA测两路脉冲问题 [打印本页]

作者: AOE    时间: 2013-3-22 01:12
标题: 请教火哥关于野火底层库DMA测两路脉冲问题
请问火哥我用的是100脚的K60板子做直立车,其他模块的都能调试通过,唯独DMA计数始终搞不明白,我的想法是通过这两个函数初始化DMA_count_Init(DMA_CH0, PTA17, 0xf, DMA_rising);
DMA_count_Init(DMA_CH2, PTA19, 0x2, DMA_rising);

通过PIT计数后用
zuo=DMA_count_get(DMA_CH0);
you=DMA_count_get(DMA_CH2);
  DMA_count_reset(DMA_CH0);      
  DMA_count_reset(DMA_CH2);

获得PTA17和PTA19输入进来的脉冲,,结果当然是一片混乱了,我想知道正确使用这三个函数的方式是怎么样的,还有初始化的第三个值 count   累加计数中断值是什么意思,我改变它会直接影响读取的值,你们发布的入门PDF文档里面也没有提及这部分的内容.我看了你们发布的一些例程.是一定要像你们的例程那样进入CH4中断计数吗,还有100脚的要使用DMA不出错得修改些什么呢...请火哥解救...

作者: cmwanysys    时间: 2013-3-22 10:02
我也不会用,我的是两个编码器,用两个dma但发回的值显示两者一样,不知道这DMA_count_get(DMA_CH4)到底咋用??
这两个不用中断也行!不知道咋回事??
麻烦火哥也解答一下
作者: 野火    时间: 2013-3-22 11:38
两个不能用同一个端口。
例如你用了A17,第二个就不要用 A端口的,改成其他端口


作者: jack_channel    时间: 2013-3-22 13:13
亲,A19是晶振的!不能用的哦
作者: AOE    时间: 2013-3-22 13:23
jack_channel 发表于 2013-3-22 13:13
亲,A19是晶振的!不能用的哦

对.耶....我.....我二了...谢谢提醒.可是DMA还是不会用...定义两个就有一个没反应....

作者: AOE    时间: 2013-3-22 18:57
野火 发表于 2013-3-22 11:38
两个不能用同一个端口。
例如你用了A17,第二个就不要用 A端口的,改成其他端口

我现在改用A口和B口了.能够读到数据  DMA_count_Init(DMA_CH0, PTA17, 0x10, DMA_rising); DMA_count_Init(DMA_CH2, PTB2, 0x10, DMA_rising);
可是现在这第三个参数 累加计数中断值要怎么确定?我把他改小了他变化很小.改大了动一下就变很大..然后点击转快了读回来的值反而小了..不准啊..一定要进中断计数吗火哥...



作者: cmwanysys    时间: 2013-3-23 13:23
这样啊
作者: 野火    时间: 2013-3-25 21:25
AOE 发表于 2013-3-22 18:57
我现在改用A口和B口了.能够读到数据  DMA_count_Init(DMA_CH0, PTA17, 0x10, DMA_rising); DMA_count_Ini ...

第三个参数是滤波左右,如果设置太大,过滤更严重,当然采集到的脉冲更少。

如果你能保证不溢出,那可以不用中断



作者: 樽中月影﹠    时间: 2013-3-26 13:43
野火 发表于 2013-3-25 21:25
第三个参数是滤波左右,如果设置太大,过滤更严重,当然采集到的脉冲更少。

如果你能保证不溢出,那可 ...

火哥,请问用DMA测速和正交解码哪个更好点啊?这几天我也在这纠结呢

作者: 野火    时间: 2013-3-26 13:47
樽中月影﹠ 发表于 2013-3-26 13:43
火哥,请问用DMA测速和正交解码哪个更好点啊?这几天我也在这纠结呢

正交解码 肯定比DMA测速好,但是正交解码会用了FTM模块


作者: 樽中月影﹠    时间: 2013-3-26 14:01
野火 发表于 2013-3-26 13:47
正交解码 肯定比DMA测速好,但是正交解码会用了FTM模块

确实是多占用了个FTM,哎……算了,我两个都尝试下,再对比……谢火哥指点

作者: tong__yi    时间: 2013-4-6 15:23
野火 发表于 2013-3-26 13:47
正交解码 肯定比DMA测速好,但是正交解码会用了FTM模块

火哥,有正交解码的参考程序吗

作者: 野火    时间: 2013-4-8 08:52
tong__yi 发表于 2013-4-6 15:23
火哥,有正交解码的参考程序吗

我们Q群里有参考的程序啊,[attach]43366[/attach]



作者: tong__yi    时间: 2013-5-9 18:50
野火 发表于 2013-4-8 08:52
我们Q群里有参考的程序啊,

万分感谢,

作者: 冬日暖阳style°    时间: 2013-5-15 20:57
野火 发表于 2013-3-25 21:25
第三个参数是滤波左右,如果设置太大,过滤更严重,当然采集到的脉冲更少。

如果你能保证不溢出,那可 ...

火哥,关于第三个参数的问题可以说的再清楚点吗?刚刚入门的人真心伤不起呀
作者: 853728579    时间: 2013-6-19 15:45
野火 发表于 2013-3-25 21:25
第三个参数是滤波左右,如果设置太大,过滤更严重,当然采集到的脉冲更少。

如果你能保证不溢出,那可 ...

请问一下,这个值怎么设置,怎么好像不是滤波作用,我们设置的是0x7FFF,加速度设置I参数时,就出现一系列的问题,这是怎么回事,是不是这个设置的原因

作者: 2601819196    时间: 2013-11-17 16:19
野火 发表于 2013-3-22 11:38
两个不能用同一个端口。
例如你用了A17,第二个就不要用 A端口的,改成其他端口

DMA读数初始化:
DMA_count_Init(DMA_CH4,PTC11,999,DMA_rising);  //right
//   Gpio_init(PORT_C,11,0,0);   //PTC0像素中断设置为输入状态      
//   PORTC_PCR11|=PORT_PCR_IRQC(1);   //PORTC_PCR0|=PORT_PCR_IRQC(1),触发端口设置成为DMA请求状态
    PORTC_PCR11|=0x01;

读取脉冲累加的数值:
if(TimerCntms1>=5)
          {
               TimerCntms1=0;
               
               speedr=DMA_count_get(DMA_CH4);
               DMA_count_reset(DMA_CH4);
               
          }
我就不知道这有什么问题,感觉是对的,测得时候就是没读数。

作者: 野火    时间: 2013-11-17 17:52
2601819196 发表于 2013-11-17 16:19
DMA读数初始化:
DMA_count_Init(DMA_CH4,PTC11,999,DMA_rising);  //right
//   Gpio_init(PORT_C,11 ...

DMA 测脉冲,我们发现容易受到干扰,因此也不再推荐使用。

作者: Ziaaa~luckyman    时间: 2014-3-15 21:05
野火 发表于 2013-3-26 13:47
正交解码 肯定比DMA测速好,但是正交解码会用了FTM模块

火哥    DMA能测速吗   为什么我写的dma的程序出不来。   有DMA的测速的例程吗

作者: TuTuready    时间: 2014-3-17 20:06
野火 发表于 2013-3-25 21:25
第三个参数是滤波左右,如果设置太大,过滤更严重,当然采集到的脉冲更少。

如果你能保证不溢出,那可 ...

火哥,那个DMA能不能同时用?我要用来采两路脉冲 ,DMA_count_Init()函数里面的地址为什么是一个固定地址?麻烦火哥了,此问题困扰了好久了,万分感谢!

作者: yandld    时间: 2015-7-4 15:48
哎,人家官方已经把这个问题写的很明白了




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