хочется иметь на двух ножках Atmega328p сигналы для управления полным мостом вида
Код
Время | 1-ая нога | 2-ая нога
(0,t1) | 0 | 0
(t1,t2+t1) | 1 | 0
(t2+t1,t2+2*t1) | 0 | 0
(t2+2*t1,2*t2+2*t1) | 0 | 1
(0,t1) | 0 | 0
(t1,t2+t1) | 1 | 0
(t2+t1,t2+2*t1) | 0 | 0
(t2+2*t1,2*t2+2*t1) | 0 | 1
и так далее, причем чтобы задавать t1, t2 в виде числа тактов и в это же время заниматься чем-то другим.
Так как мне и t1, и t2 надо менять довольно в больших пределах примерно около 500-1000 раз в секунду, очень хотелось организовать все это на чем-то хардверном.
Значения t1 и t2 могут колебаться в диапазоне от 1 до 2000, то есть частоты варьируются с 2кГц до 2МГц.
Софтверно знаю как, но не хочу, так как процессор должен в это же время делать много другой работы.
Могу сделать почти так, но без первого или третьего шага, то есть
Код
Время | 1-ая нога | 2-ая нога
(0,t2) | 1 | 1
(t2,t2+t1) | 1 | 0
(t2+t1,2*t2+t1) | 0 | 0
(0,t2) | 1 | 1
(t2,t2+t1) | 1 | 0
(t2+t1,2*t2+t1) | 0 | 0
а так как драйверы моста у меня можно хоть инвертирующие, хоть не инвертирующие поставить, то получается, что это эквивалентно
Код
Время | 1-ая нога | 2-ая нога
(0,t2) | 0 | 1
(t2,t2+t1) | 0 | 0
(t2+t1,2*t2+t1) | 1 | 0
(0,t2) | 0 | 1
(t2,t2+t1) | 0 | 0
(t2+t1,2*t2+t1) | 1 | 0
но, хочется именно так, как я написал вначале. Может есть правильные установки регистра TCCR1A и я что-то пропустил, вдруг кто-то знает, пожалуйста, подскажите!
PS: забыл добавить, что меня устроило бы даже такое
Код
Время | 1-ая нога | 2-ая нога
(0,t1) | 0 | 0
(t1,t2+t1) | 1 | 0
(t2+t1,t2+2*t1) | 1 | 1
(t2+2*t1,2*t2+2*t1) | 0 | 1
(0,t1) | 0 | 0
(t1,t2+t1) | 1 | 0
(t2+t1,t2+2*t1) | 1 | 1
(t2+2*t1,2*t2+2*t1) | 0 | 1
но я не понимаю как это реализовать...
Спасибо
ИИВ