Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вот пример ассемблерной реализации 8-канальной ШИМ. Все делается в прерывании таймера

Отправлено =AVR= 08 марта 2007 г. 13:51
В ответ на: халявы я не ищу отправлено <font color=gray>BATCOH</font> 08 марта 2007 г. 13:30


;Один шаг 256-зубой пилы ШИМ = ISR таймера
t0isr:
in stsav,SREG ;Сохраняем статус. STSAV - общий для всех невложенных прерываний
push temp ;Сохраняем временный рабочий регистр

inc pwm ;Добавляем очередной зуб к пиле ШИМ

cp r2,pwm ;Перенос=1 при Rx <= PWM rol tmp ;Вдвигаем перенос в рабочий регистр
cp r3,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр
cp r4,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр
cp r5,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр
cp r6,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр
cp r7,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр
cp r8,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр
cp r9,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр

out PORTA,tmp ;Выставляем ноги PWM 1..8

pop temp ;Восстанавливаем временный рабочий регистр
out SREG,stsav ;Восстанавливаем регистр статуса

reti

На С сам сделай по этому алгоритму. Были длинные дискуссии по этому поводу здесь и на Сахаре

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
умножьте 2 на три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru