[an error occurred while processing this directive]
Главный "забой" по ссылке, урезать до 8 бит и не париться -->
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено =AVR= 25 октября 2006 г. 18:37
В ответ на: Ответ: Спасибо посмотрю отправлено <font color=gray>link</font> 25 октября 2006 г. 17:32

Процедура прерывания таймера, реализующая 8-канальный 256-зубый ШИМ. Безвозвратно тратится 10 регистров из 32 (R1 (tmp) - рабочий, R2 (pwm) - пила ШИМа, R3..R10 - уставки ШИМ). Таймер в режиме CTC - Clear On Compare (реинициализация и сброс флага автоматические). Занимает 30 тактов вместе со входом/возвратом, максимальная частота ШИМ - 2.6 КГЦ при 20-МГЦ кварце. Если выбрать частоту ШИМ порядка 500 ГЦ (порядка 8 мкс на 1 ступеньку), то останется свободно 80% процессорного времени, а если сделать меньше ступенек - то гораздо больше:


t0isrREG:
in stsav,SREG ;Сохраняем статус. STSAV - общий для всех невложенных прерываний

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

cp r3,pwm ;Перенос=1 при Rx <= PWM ;Те же 2 такта на канал, что и у ПИКа
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 ;Вдвигаем перенос в рабочий регистр
cp r10,pwm ;Перенос=1 при Rx <= PWM
rol tmp ;Вдвигаем перенос в рабочий регистр

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

out SREG,stsav ;Восстанавливаем статус

reti



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

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

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

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


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