尝试编写程序接受两路霍尔传感器输入用于测量电机转速。
参考手册P186 TIM1/TIM8与霍尔传感器借口一章。写了一下程序用于初始化TIM4作为霍尔传感器的接收。
void HALL_Init()
{
TIM4->CR2|=1<<7 //设置CR2第7位为1
TIM4->ARR|=0xFFFF //设置ARR为最大值
TIM4->CCMR1&=0xFFFC //写ccmr寄存器0,1位为01 CC1S=01
TIM4->CCMR1|=0x0003
TIM4->CCMR1|=7<<12; //置oc2m=111
TIM4->CCMR1&=0xFCFF //置CC2S为00
TIM4->CR2&=0xFF8F; //置CR2 MMS=101;
TIM4->CR2|=5<<4;
}
入正题:
有几个问题希望大大们能解救:
1、这种利用霍尔传感器反馈产生PWM的方法,一定要用TIM1或者TIM8产生PWM波吗?
2、手册中有以下描述
未命名.jpg (63.71 KB, 下载次数: 1)
下载附件
2012-5-10 21:56 上传
这段要怎么理解呢?
如果第一问的答案是肯定的,是不是只要我根据我上面的程序启动TIM4后,在按照图上的说明配置TIM1,每当TIM4发来的正脉冲到达时,就可以产生一个COM中断呢?
3、如果一二问是肯定的,这里面没有说明霍尔传感器输入多少个脉冲才会产生一个COM中断,比如说外部是两个相差180度的霍尔传感器,如果转轴上只有一个磁钢,会造成多少个COM中断呢?
4、如果有相关的程序能够分享的希望能帮助一下,谢谢!
ylh1239@foxmail.com
一周热门 更多>