Alexey, ты ещё здесь сидишь?
Четверг Апрель 28 2005 10:18, Alexey Boyko wrote to George Shepelev:
GS>>>> Достаточно большое, линии цифровые, надо ведь маршрутизировать GS>>>> пакеты... AB>>> И что, не успевает? GS>> Hе проверял, пока что я этой задачей не занимаюсь. AB> Hу так откуда претензии?
Hе претензии, а сомнения. Из опыта работы над старыми проектами.
AB>>> Я временные диаграммы по Output Compare формирую. GS>> Покажи код для формирования синуса с помощью прямоугольника, GS>> причём в спектре выходного сигнала нет гармоник от 2-й до 12-й. GS>> Hу, почти нет ;) Три фазы, сдвинутые на 120°, частота синуса до 5 GS>> кГц. AB> Это что - типа ШИМ-ом что ли?
Выглядит похоже ;)
AB> Hу, с одного таймера - три Output Compare. Три прерывания, в каждом AB> пересчет нового значения для Output Compare. В чем ты проблему увидел?
Во-первых, контроллеров с тремя Output Compare (да ещё и с независимыми прерываниями) не так много. Во-вторых, пересчёт нового значения в прерывании потребует достаточно много тактов, понадобится достаточно высокая тактовая (увеличится потребление), в-третьих, могут быть накладки, если прерывания с двух каналов наложатся (или почти совпадут). В общем, не слишком тривиальная задача.
AB> (А кода у меня такого нет, не писал такое.)
Я понял.
AB> А что это можно нормально сделать программно, без таймера?
Да, конечно. Подсчитав число тактов (циклов) между каждым изменением состояния выходов контроллера. Минимальное потребление, но код достаточно трудоёмкий (и "высокоуровневые" компиляторы вряд-ли применимы).
AB>>> Это РОH. Их больше, чем нужно. GS>> Их мало, если объём обрабатываемых данных большой. AB> Обрабатывал я и большие данные. Хватает.
Риалтайм. Далеко не всегда хватает...
GS>> Там, где в PIC нужно изредка клацать страничкой, AVR'у приходится GS>> постоянно таскать данные с помощью LD/ST... AB> Да не надо там ничего таскать. Писал. Знаю.
А, знакомо. "Плавали, знаем" ;)
Соль в том, что твой личный опыт не исчерпывает _всех реальных_ ситуаций...
Георгий