楼主

官方的IRS21867S点击驱动程序要怎么写?就是要给怎样的输入

[复制链接]
梯队队员spring
2015-3-21 16:54:51 显示全部楼层
本帖最后由 spring 于 2015-3-21 17:14 编辑

if(X<0)
        {
                short t = 160;
                TIM1->CCR4  = 0;
                TIM1->CCR2  = -X;
                GPIOA->ODR &= ~GPIO_Pin_8;
                while(t--);               
                GPIOA->ODR |= GPIO_Pin_10;
        }
        else
        {
                short t = 160;
                TIM1->CCR2  = 0;
                TIM1->CCR4  = X;
                GPIOA->ODR &= ~GPIO_Pin_10;
                while(t--);               
                GPIOA->ODR |= GPIO_Pin_8;
        }



这样写可以吗太浪费时间片了
不能刷新充电电容,能一直保持高电平吗?

有更好的方法吗?





        if(X<0)
        {
                TIM1->CCR1 = 0;
                TIM1->CCR4 = 0;
                TIM1->CCR2 = -X;
                TIM1->CCR3 = -X;
        }
        else
        {
                TIM1->CCR1 = X;
                TIM1->CCR4 = X;
                TIM1->CCR2 = 0;
                TIM1->CCR3 = 0;
        }令一种方法不怕炸的可以试一下
#define SETCOMPARE(X)   (X < 0)? (TIM1->CCR1 = 0, TIM1->CCR4 = 0, TIM1->CCR2 = -X, TIM1->CCR3 = -X):\
                                                                                                (TIM1->CCR1 = X, TIM1->CCR4 = X, TIM1->CCR2 = 0, TIM1->CCR3 = 0)

沙发

官方的IRS21867S点击驱动程序要怎么写?就是要给怎样的输入

[复制链接]
梯队队员spring
2015-3-21 17:22:25 显示全部楼层
本帖最后由 spring 于 2015-3-21 17:29 编辑
Dieinwind 发表于 2015-3-21 17:20
貌似已经炸了一块板子了

换向加延时,至少一个PWM周期吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

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