Нифигасебе проще
)
Ну дело твоё, да, нужно запитать и подавать на вход 0 или 1 и смотреть правильно ли на выходе.
Программно:
В файле bldchv.c в самом начале функции main добавь строчки
/*test*/
PORTD=0x00; //clear so not turning on the fets accidently
DDRD=0b10000111; //Bit7,2,1,0 are outputs
PORTB=0x00; //disable pullups, set output to 0
DDRB=0b00000111; //Bit2:0 are output
Com_Index=0; //значение от 0 до 5!
PORTD=0b00000111 & ACTIVE_FET [Com_Index];
PORTB=0b00000111 & PWM_BYTE_DATA[1][Com_Index];
while(1);
/*test end*/
Программа запустится выставит значения для первой стадии коммутации и зациклится на while(1);
Массивы берутся из файла include/commutation.h
Переменная Com_Index отвечает за индекс коммутации она меняется от 0 до 5.
Т.е. скомпилировал с Com_Index=0 залил посмотрел состояния выводов,
потом меняешь Com_Index=1 и повторяешь процесс.
Микросхему можно перепрограммировать 100 000 раз, так что не бойся
Посмотреть что должно быть на выходе можно в описании массивов в файле commutation.h
Например ACTIVE_FET 0x03, // 0 1 1 это означает что на PORTD будет выставлено PD2=0 , PD1=1 , PD0=1;
а PWM_BYTE_DATA 0x31, //-011-001 это означает что PB2=0 , PB1=0 , PB0=1 (мы читаем только последние три байта)
Проверять можно тестером, 1==5в , 0==земля
ir2104 работает так,
вывод SD это вкл, выкл всей микросхемы, т.е. если SD= 1 то на выходе то что на входе IN,
Если на входе IN 1 то включен верхний транзистор, если 0 то включен нижний, одновременно верхний и нижний не должны быть включены!
если SD 0 то на выходе везде нули. независимо что на входе IN
Добавлено спустя 15 минут 57 секунд:Только на каждом шаге проверь выводы на всех трёх микросхемах, я тебе давал ссылку, народ говорит, что попадаются палёные микросхемы, которые глючат, или вообще IN c SD перепутаны местами.