本帖最后由 Angus 于 2015-1-18 13:23 编辑 nt52241930 发表于 2015-1-6 15:38 PWM最大值发生中断, 但PWM计数器没停止计数, 硬件入栈8个寄存器, 执行到中断里, 遇到断点,这时防真器再去读PWM计数器, PWM计数器应已减计数多个PWM时钟了, 所以这时读到的PWM计数器的值比最大值小一点。 |
nt52241930 发表于 2015-2-3 10:13 做电机控制入门并不难,但要做好做精,还是要经过一段时间的测试研究的,用我们芯片的客户,我们都会一一回答客户的疑問。 |
本帖最后由 nt52241930 于 2015-2-3 10:17 编辑 xiaoxiao2013 发表于 2015-2-3 09:15 您好, 基礎性的大概了解,只是想清楚,此程式真正動作原理 網上資料,基本上也都大同小異~~~ 若您覺得,"免費"回答,不妥,您可以選擇不回答~~~ 不勉強的!!!~~~ 只是想來互相學習,了解 感謝~~~ 我們也在尋找,這塊能支援我們開發的 若有必要,上課收費..等等,是可以接受的 |
nt52241930 发表于 2015-2-3 08:20 基础性的东西要自己找资料,不能总是免费问别人啊 |
是阿, 還需多請教您們 |
nt52241930 发表于 2015-2-2 17:22 你太新手了 |
ok,了解~~ 那在請問您 AngleStep = ((10<<8)*2000/6)/temp32u ; (10<<8)*2000/6) 您這部分,指的是?? 2000為pwm period 6為1/6圈??? 還需麻煩您,感謝 |
本帖最后由 Angus 于 2015-2-2 17:36 编辑 nt52241930 发表于 2015-2-2 15:19 假定上一次Hall边沿中断时刻为 Timwr1_0, 本次Hall边沿中断时刻为 Timer1_1, 则电机转过 60度的时间就是 Timer1_1 - Timer1_0。 如果PWM的频率与Timer1的计数频率一样, 过一个PWM周期以后, 转过的角度就是 (60度 X PWM周期)/(Timer1_1 - Timer1_0) 。如果两个计数频率不一样,要先换算成相同的计数频率。 |
本帖最后由 nt52241930 于 2015-2-2 15:31 编辑 Angus 发表于 2015-2-2 14:54 您好, 意思是,使用上一次的hall來做為此次hall的依據 假設,上一個hall,跑了50個pwm pulse(pwm頻率為20khz,20khz*50=hall時間) 此次hall,以計數到25個,則表示此次hall改變後已跑了30度的意思麻!!?? 您的(60*t/T),此60是代表角度?? 以上再麻煩,thanks |
nt52241930 发表于 2015-2-2 12:06 用Timer1来测量Hall,可以测得每次Hall变化时,上次转过1/6圈所用的时间——T,PWM每过一个周期,也可以换算成Timer1标定的时间——t, (60*t/T)就是每次PWM转过的角度。 |
Angus 发表于 2015-1-30 13:11 您好, 我可以將sin表,視為轉子轉180度的間格 計算每個hall時間(1/6),從換相開始去計算pwm次數(此次數可決定轉速) 角度部分,該如何使用pwm週期來計算 目前轉子角度呢???? 以上再麻煩,不吝嗇指教 感謝 |