GD芯片带多路步进电机工作不正常,请高手们指点一下

[复制链接]
xdqfc 发表于 2022-4-19 09:08 | 显示全部楼层
gdszzyq 发表于 2022-4-18 16:06
主程序查询中断标志肯定来不及的,几路一起产生中断请求的概率非常低,就算出现了7路一起产生中断请求,对 ...

就是这个意思,你可以试试看,改一下程序试试,也花不了多少时间。
 楼主| gdszzyq 发表于 2022-4-19 10:04 | 显示全部楼层
zeshoufx 发表于 2022-4-18 22:12
你这个函数明显是错的啊,,,你使能的是CCX通道,,极性却是配置CCXN通道的,,,
把这句
timer_ocintpara ...

为了方便使用,我没有使用默认的端口产生PWM信号,只是利用中断,在中断里控制其它端口产生PWM信号
 楼主| gdszzyq 发表于 2022-4-19 10:10 | 显示全部楼层
xdqfc 发表于 2022-4-19 09:08
就是这个意思,你可以试试看,改一下程序试试,也花不了多少时间。

请问这种情况如何避免?主程序不太可能做这种判断,而且也来不及,唯有一个定时器输出一路PWM才能避免那种丢失中断请求的可能。
xdqfc 发表于 2022-4-19 10:46 | 显示全部楼层
本帖最后由 xdqfc 于 2022-4-19 10:50 编辑

主程序一个循环才多长时间啊,不够查询吗,不会是ms级别吧。这种方式起码是不会漏掉的,除非慢的出奇。尝试一下又何妨。还没有尝试就先否决,这不是解决问题的态度。
 楼主| gdszzyq 发表于 2022-4-19 11:29 | 显示全部楼层
本帖最后由 gdszzyq 于 2022-4-19 11:33 编辑
xdqfc 发表于 2022-4-19 10:46
主程序一个循环才多长时间啊,不够查询吗,不会是ms级别吧。这种方式起码是不会漏掉的,除非慢的出奇。尝试 ...

主程序循环周期是1毫秒,我定死的,顺便作程序中需要的定时时标,我现在是希望找出是别的原因,如果真是因为这样会丢失中断请求那我只能放弃用GD芯片,因为这样改动太大了,我的程序比较多,还要考虑兼容性。
xdqfc 发表于 2022-4-19 11:41 | 显示全部楼层
gdszzyq 发表于 2022-4-19 11:29
主程序循环周期是1毫秒,我定死的,顺便作程序中需要的定时时标,我现在是希望找出是别的原因,如果真是因 ...

还真是ms级的呢。
tonb 发表于 2022-4-19 12:12 | 显示全部楼层
gdszzyq 发表于 2022-4-19 11:29
主程序循环周期是1毫秒,我定死的,顺便作程序中需要的定时时标,我现在是希望找出是别的原因,如果真是因 ...

看工程中配置的是108M,需要在system_gd32c10x.c文件中屏蔽掉#define __SYSTEM_CLOCK_108M_PLL_HXTAL,打开#define __SYSTEM_CLOCK_72M_PLL_HXTAL。定时器中配置的分频值还是按72M时钟计算的,定时周期应该和你预想的是不一样的。
 楼主| gdszzyq 发表于 2022-4-19 12:32 | 显示全部楼层
tonb 发表于 2022-4-19 12:12
看工程中配置的是108M,需要在system_gd32c10x.c文件中屏蔽掉#define __SYSTEM_CLOCK_108M_PLL_HXTAL,打 ...

我在预处理那里定义__SYSTEM_CLOCK_72M_PLL_HXTAL,#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL)
    system_clock_72m_hxtal();所以是72M时钟,而且我也测试是准的。
tonb 发表于 2022-4-19 14:32 | 显示全部楼层
gdszzyq 发表于 2022-4-19 12:32
我在预处理那里定义__SYSTEM_CLOCK_72M_PLL_HXTAL,#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL)
    s ...

不好意思,没打开KEIL工程看。屏蔽掉其它中断看看,避免中断优先级的影响问题,或者系统时钟用108M试试,会不会有改善?
 楼主| gdszzyq 发表于 2022-4-19 16:37 | 显示全部楼层
tonb 发表于 2022-4-19 14:32
不好意思,没打开KEIL工程看。屏蔽掉其它中断看看,避免中断优先级的影响问题,或者系统时钟用108M试试, ...

谢谢你,目前有串口中断及3个定时中断,但产生PWM信号的定时器中断级别最高,串口是接收触摸屏数据的,不按它的话是不会发送数据的。同样的程序在ST芯片下是没任何问题的
 楼主| gdszzyq 发表于 2022-4-26 10:54 | 显示全部楼层
顶上来
xdqfc 发表于 2022-4-27 11:29 | 显示全部楼层

这里是GD32板块,咱不好说多少,前面就建议你换APM32,你不听,那咋办,为什么换APM32,咱又不好说太多,你懂的。GD32咱也用不少,有些东西跟我们理解的还真不一样。
kfhzy 发表于 2022-4-27 12:32 | 显示全部楼层
gdszzyq 发表于 2022-4-14 21:35
.如果是这样就是芯片问题,我想不至于吧,stc的我也有用,3个定时器控3路步进电机没问题,定时器有点特别 ...

我买过假的GD芯片,能烧写程序,也能执行IO操作,但内部时钟全是错的,配置的10k频率的PWM,输出只有7k左右。可以弄个管脚输出一定的波形,用示波器查查,看看时钟是否正常
tpgf 发表于 2022-5-4 11:03 | 显示全部楼层
外接的什么驱动啊
aoyi 发表于 2022-5-4 11:13 | 显示全部楼层
把加速过程拉长试试看
nawu 发表于 2022-5-4 11:22 | 显示全部楼层
会不会是负载过大了
zljiu 发表于 2022-5-4 11:32 | 显示全部楼层
是跑的系统吗
gwsan 发表于 2022-5-4 11:40 | 显示全部楼层
只运行电机那部分代码试试看
tfqi 发表于 2022-5-4 11:47 | 显示全部楼层
我还是不习惯用结构体
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部