-
伺服电机PID控制抖动
PID控制伺服电机总是在两个电机绝对角度位置抖动,看上去像是电机转动到这个位置顿住了一会儿,然后突然提速通过,就跟跨阶梯一样没有平滑过渡的过程。 我用姿态角做误差,写了个PI位置环输入目标姿态角、当前姿态角,输出目标速度。目标速度结合读取的当前速度做调整,再通过CAN发送速度给电机纠正角度。有写死区,在正负0.2°内清除积分,输出目标速度0停止电机转动。
4204浏览量 14回复量 关注量 -
GD32F470VIT6程序在地址512K-1024K运行速度慢
GD32F470VIT6程序在地址512K-1024K运行速度慢,根据手册说明,0-1024K地址的FLASH都是零等待,但是实际就是慢很多,不知道是不是配置不对?
1027浏览量 3回复量 关注量 -
关于GD32F103RCT6 GPIO输出最大速度设置不同出现BUG的问题
测试的输出IO口有 PA4 PA5 PA6 PA7 PC4 PC5 PB0 PB1 PB2 PB10 PB11 PB12 PB13 PB14 输出IO口 全部设置初始低电平 推挽输出 下拉模式 输出最大速度作为观测变量 测试的输入IO口有 PA12 PA11 PA10 PA9 PA8 PC9 PC8 PC7 PC6 PB15 输入IO口全部设置 下拉模式 低速模式 输出口输出经过一个1k电阻到另一个输入口全部正常通过 输入高电平能接收到高电平 中速模式 PC4 PC5输出高电平 PA10没获取到高电平 高速模式 PB2 PB10输出高电平 PA9 PB11 PB12输出高电平 PA8 使用的是STM32CubeMx工具直接生成代码 求答 没有家园币。。
18478浏览量 20回复量 关注量 -
华大MUC HC32F460同样的程序运行速度不一致
[color=#222226][backcolor=rgb(255, 255, 255)][font=-apple-system, "][size=16px]华大MUC HC32F460同样的程序运行速度不一致,在不加BOOTLOADER的前提下运行的速度远低于加了BOOTLOADER的运行速度。[/size][/font][/backcolor][/color] [color=#222226][backcolor=rgb(255, 255, 255)][font=-apple-system, "][size=16px]问题补充:[/size][/font][/backcolor][/color][color=#222226][backcolor=rgb(255, 255, 255)][font=-apple-system, "][size=16px]①Bootloader的的时钟初始化与应用程序的时钟初始化是一致的[/size][/font][/backcolor][/color] [color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font=-apple-system, "][size=16px]②在不使用Bootloade的情况下应用程序直接烧入在FLASH的0x0地址的运行速度远低于在使用了Bootloader后应用程序的烧入地址为0xA000[/size][/font][/backcolor][/color] [color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font=-apple-system, "][size=16px]的运行速度[/size][/font][/backcolor][/color] [color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font=-apple-system, "][size=16px]③测试代码是一致的为软件模拟的延迟,如下所示[/size][/font][/backcolor][/color] [color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font=-apple-system, "][size=16px][list=1] [*][float=left][font="][size=14px]void delay_ms( uint16_t ms ) [/size][/font][/float] [*][align=right][float=left][color=rgb(119, 120, 136) !important][font="][size=14px] [/size][/font][/color][/float][/align] [float=left][font="][size=14px]{ [/size][/font][/float] [*][align=right][float=left][color=rgb(119, 120, 136) !important][font="][size=14px] [/size][/font][/color][/float][/align] [float=left][font="][size=14px] uint32_t ms_t = 100 * ms; [/size][/font][/float] [*][align=right][float=left][color=rgb(119, 120, 136) !important][font="][size=14px] [/size][/font][/color][/float][/align] [float=left][font="][size=14px] while( ms_t-- ); [/size][/font][/float] [*][align=right][float=left][color=rgb(119, 120, 136) !important][font="][size=14px] [/size][/font][/color][/float][/align] [float=left][font="][size=14px]} [/size][/font][/float] [/list][/size][/font][/backcolor][/color]
1102浏览量 1回复量 关注量 -
HC32L110的GPIO速度能到多少
[color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]版主你好:[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] 请问HC32L110的GPIO速度能到多少?我用24M时钟,翻转周期将近7微秒(高电平3.4微秒,低电平3.5微秒),正常吗?有办法提高吗?[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]一下是我的测试程序。谢谢![/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]int32_t main(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]{[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Clk_SwitchTo(ClkRCH); //使用内部高速时钟[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Clk_SetRCHFreq(ClkFreq24Mhz); //24M [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Clk_SetPeripheralGate(ClkPeripheralGpio, TRUE); //打开GPIO外设时钟[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]//[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Gpio_SetFunc_HCLKOUT_P24(); //P24配置为HCLK输出 [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Gpio_InitIOExt(0, 3, GpioDirOut, TRUE, FALSE, FALSE, FALSE);//初始化外部GPIO P03为输出、上拉、推挽输出,[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]// [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] while (1)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Gpio_SetIO(0, 3, TRUE); //设置GPIO值(翻转)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Gpio_SetIO(0, 3, FALSE);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color]
1121浏览量 3回复量 关注量