и это тоже легко делается,Sergey89 wrote:SPI ремапица на другие пины. А выгода такая, что имеем 8 ШИМ каналов с аппаратной точностью, но интереснее было бы сделать с разными частотами. В таком виде как сейчас предложено я не вижу практического применения, т.к. проще на аппаратные таймеры повестить что можно, а что нельзя сделать софтом. Геморроя не больше чем при реализации программного ШИМ на одном канале таймера
буфер разделяется на два, по переменно выводится то один, то другой. количество одновременно обсчитываемых бит может быть любое в пределах аппаратных ресурсов. (тем более, что их тратится очень мало)
таким образом реализуется абсолютно любая частота в пределах теоремы котельникова
а так же сигналы открытия форсунок, зарядки катушек зажигания и искры и т.д. ВЕСЬ точный по времени вывод можно сделать унифицировано, через одну технологическую реализацию.
к примеру, Peak-and-hold можно сделать целыми двумя способами:
с помощью двух ключей - это заводим два бита на вывод и даём команду вроде
000001111111111111111111111111111111111111111111111111111111100000000 <-hold
000001111111100000000000000000000000000000000000000000000000000000000000 -<peak
или с помощью микроШИМа:
000001111111101010101010101010101010101010101010101010101010101000000000
-------||Peak||-----------------------------------------------------------------------------------
------------------||||||||||||||||||||Hold||||||||||||||||||||||||||-------------
а переживания по поводу того, что мы занимаем канал АЦП - так и так и так придётся ставить внешнее АЦП с 3.3 в питанием и 5в биасом на аналоговые датчики.