Ещё вариант: выводить данные по DMA в порт общего назначения. По 64 байта за раз - одна строка на одной половине индикатора (половины раздельно управляются). DMA работает по таймеру - по каждому окончанию счёта выводится следующий байт (если DMA LPC2468 поддерживает такой режим работы, в STM32 так можно).
Синхросигнал - от того же таймера от выхода ШИМ. Если ШИМ не удобен - то ещё один канал DMA выводит синхросигнал через порт общего назначения, из буфера где записано 0, 1, 0, 1, 0, 1, ..., всего 128 байт, по таймеру который считатет в 2 раза быстрее первого. Если работать только от одного таймера, то буфер данных нужно скопировать в другой буфер, записав каждый байт данных 2 раза подряд, так что тоже будет 128 байт.
Цитата(toweroff @ Nov 15 2011, 13:12)

а почему аппаратный EMC не пользовать?
у LPC2468 четыре банка, на одном висит RAM, на втором - индикатор
В силу специфики выставляем R/W, D/I и совершаем просто обращение к банку, в качестве E будет выступать /CSx контроллера
Шина данных на все банки вероятно общая. Поэтому пока идёт отведённое на обмен с индикатором время, и он неспеша берёт данные с шины, пользоваться этой RAM нельзя.
Сообщение отредактировал maksimp - Nov 16 2011, 02:59