[an error occurred while processing this directive]
Господа подскажите ответ, опять я со своим ШИМом.
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ddka 10 мая 2006 г. 22:33

Сделал ШИМ для светодиода на EPM3064,
Алгоритм такой для одноканального ШИМа загоняю по SPI в 8-ми разрядный последовательный регистр данные, по сигналу enable
переписываю данные в выходной регистр, и этот выходной регистр сравниваю со счетчиком.
Счетчик тактируется от внешнего генератора, при возникновении сигнала enable счетчик обнуляю.
От контроллера к altere идет три провода CLOCK, DATA,Enable. Это я описал для полноты картины.
Вот так сравниваю выходной регистр со счетчиком для одноканального ШИМа.
IF (Count[7..0].qELSE PWMOUT_1=GND;
END IF;
ШИМ работает нормально.
Теперь решил добавить еще один канал ШИМа
Для этого последовательный регистр увеличил до 16 разрядов и выходное регистр также увеличил, по SPI загоняю два байта.
Теперь условие сравнения выглядит так :
IF (Count[7..0].qELSE PWMOUT_1=VCC;
END IF;

IF (Count[7..0].qELSE PWMOUT_2=GND;
END IF;

Т.е со значением счетчика сравниваю выходы регистра с номерами [7..0], и отдельно с номерами [15..8]
Работать не хочет ни 1-ый ни второй канал ШИМа.
Пробовал сделать еще один счетчик Count_1, абсолютно едентичный Count, и сравнивать значение регистра
с Count_1, вот так.
IF (Count_1[7..0].qEND IF;
Результат такой же ни один из каналов ШИМ не работает.
Подскажите где накосячил, наверно сраваниваю не так как нужно?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru