Я хочу, чтобы управлять двигателем BLDC, я использую ATmega32 как центральный процессор контроллера, у меня есть проблемы в чтении Датчика Холла от БКЭПТАBasic I/O в микроконтроллерах AVR с использованием WinAVR
это мой код:
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);
PORTB, как OUTPUT и PORTD в качестве входных данных это основная программа:
if (~(PORTD &(1<<0)) && PORTD &(1<<1) && ~(PORTD &(1<<2))) /// 0 1 0
{
PORTB=(1<<0)|(0<<1)|(0<<2)|(1<<3)|(0<<4)|(0<<5);
}
else if (~(PORTD &(1<<0)) && PORTD &(1<<1) && PORTD &(1<<2)) /// 0 1 1
{
PORTB=(0<<0)|(0<<1)|(0<<2)|(1<<3)|(0<<4)|(1<<5);
}
...........
мой ответ эта программа не может прочитать логический ноль (0) от датчика Холла так BL DC не может нормально работать, как читать несколько входных данных в AVR ATMEGA32? я использую кодоблок и WinAVR ....
Большое спасибо