там и так уже есть сигнал D15 см осциллограмму
forum11/topic10041-30.html#p207463Это моменты переключения фаз, только это электрические градусы, их нужно перевести в механические.
Расчёт такой:
один электрический оборот это 360 электрических градусов, за это время происходит 6ть коммутаций,
у тебя 6ть магнитов, 6/2=3 - 3 полюса т.е. 6*3=18 импульсов за один механический оборот.
считать нужно только по возрастающему фронту.
Т.е. если ты будешь считать количество импульсов с PD7 за секунду, обороты будут:
t=1c; w=PD7/18=об./сек ; w2=w*60 -обороты в минуту., где PD7 это количество возрастающих фронтов на PD7 за секунду.
Скажем при скорости 1000 оборотов в минуту, у тебя будет (1000/60)*18=300 возрастающих фронтов на PD7 за секунду.
Для подсчёта нужно использовать uint16_t , иначе количество импульсов не уместится.
Что касается тестера, прерывание INT1 должно хорошо чувствовать возрастающий и убывающий фронты, то что там не идеальные прямоугольные импульсы не должно играть никакой роли, главное напряжение.
1 считается напряжение больше 0.6Vcc а если меньше 0.3Vcc то ноль,
при напряжении 5В имеем, >3в ==1 и <1.5в ==0
У тебя по графику в точке B чуток не дотягивает, попробуй поиграться с R33? уменьши его до 150 или ещё меньше, но не меньше 100 Ом.
На R33 приходит 5вольт?
Добавлено спустя 13 минут 41 секунду:Ещё R34 можно уменьшить, например 5кОм так транзистор должен быстрее открываться, судя по графикам он открывается медленно.