Добрый день! Нужно. Просто изменился подход. Данные не нужно передавать далеко. Энкодер DRS60, 4096 дискрет, МК определяет сдвиг фаз каналов А и В, считает импульсы в одном из каналов и вырабатывает ШИМ-сигнал. Затем - фильтр (ЦАП) и инвертор для асинхронного двигателя. Задатчик пути подключен к инвертору. Все предельно ясно. Но есть вопрос. В CVAVR создал простую программу для ATMega16: один из каналов подключен к INT0, и в прерывании инк.(дек.) переменная. Т1 считат 4096 раз. В прерывании по переполнению обновляется OCR1A и переключается линия порта. В прерывании по совпадению преключается линия порта. В AVRStudio все работает правильно, а вот в PROTEUS не получается. Это у меня программный ШИМ, а мне хочется использовать аппаратный. Пытаюсь создать быстрый ШИМ с вершиной в ICR1, сравнение с OCR1A. Все регистры, как в datasheet, но устройство в симуляторе не работает. В AVRStudio счетчик считает до 1FF и обратно, в PROTEUS тоже не работает. Почему так? Есть ли симулятор, создающий правильный ШИМ?
|