我想驱动一台BLDC电机,我用ATMEGA32作为控制器的CPU,我从BLDC电机读取霍尔效应传感器有问题
这是我的代码:
npm install
PORTB为OUTPUT,PORTD为INPUT 这是主要计划:
DDRB=(1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5);
DDRD=(0<<0)|(0<<1)|(0<<2)|(0<<3);
PORTD=(1<<0)|(1<<1)|(1<<2)|(1<<3);
我的回答是这个程序无法从霍尔效应传感器读取逻辑零(0)所以BLDC无法正常运行,如何在AVR ATMEGA32中读取多个输入? 我使用Codeblock和winavr ....
非常感谢
答案 0 :(得分:0)
我真的不明白你想做什么,但是如果你想从atmega 32中的D端读取,你没有处理'PORTD'寄存器,还有另一个叫做'PIND'的寄存器,这个是你从中读取数字信号的人。
也没有“&gt; DDRD =(0 <&lt; 0)|(0 <&lt; 1)|(0 <2)|(0 <&lt; 3);”如果要清除一位(将该位设置为逻辑0),则只使用按位而不是移位(例如DDRD = ~(1<<bitnumber)