мучаю начит этот двигатель.. точнее мучаю свою плату.. хочу сделать 2 синуса сдвинутых на 90градусов.. для этого у меня есть 2 Н моста и Хмега..
в ней есть модуль AWEX, который вносит дед тайм и генерит из 4-х ШИМ сигналов с каналов сравнения 8 сигналов дял управления ключами..
пока я просто загружаю в регистр сравнения некоторое число - все в порядке.. даже при нулевом мертвом времени в AWEX нет сквозняка или он очень мал.. при не нулевом точно нету..
только я начинаю кормить таймер значениями синуса из памяти - у меня вылазят сквозняки..
- Код: Выделить всё • Развернуть
push tmp1
push tmp2
push tmp3
push tmp4
ld tmp1, x+
ldi tmp3, 0x00
sts TCE0_CCA, tmp1
sts TCE0_CCA+1, tmp3
cpi xh, high(SineRAM+512)
brne Sine2Timer_end_a_p_ch
cpi xl, low(SineRAM+512)
brne Sine2Timer_end_a_p_ch
ldi xh, high(SineRAM)
ldi xl, low(SineRAM)
pop tmp4
pop tmp3
pop tmp2
pop tmp1
ret
вот пример кода.. если в 5 строке убрать пост инкремент - то все ок..
кода там в реальности еще больше, но я сегодня весь день себе мозг ем с этим кодом.. пытался исключать уже все что угодно..