[an error occurred while processing this directive]
А чтобы Вам полегче было - вот процедура приема-раздачи
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено =AVR= 01 сентября 2006 г. 20:40
В ответ на: Во-первых, вопросы были к Вам, но Вы на них не ответили. Во-вторых, не порите откровенную чушь про UART - я просто не знаю, как на ЭТО отвечать. Потрудитесь ответить на мои вопросы - немедленно получите и ответы в виде подробного кода отправлено =AVR= 01 сентября 2006 г. 19:15


UARTrxISR:
push tmp ;Сохраняем регистр, не сохраняем статус - он не затронется

sbis UCSRB,RXB8 ;Смотрим, что пришло - адрес или данные
rjmp set_data

;set_addr:
in tmp,UDR ;Читаем пришедший адрес из UART, сбрасываем флаг приема
sts PWMaddrL,tmp ;Сохраняем его в ОЗУ

pop tmp ;Восстанавливаем регистр
reti ;19 тактов (0.95 мкс) вместе со входом при приеме номера канала

set_data:
push xl ;Сохраняем регистр
push xh ;Сохраняем регистр

in tmp,UDR ;Читаем пришедшую уставку из UART, сбрасываем флаг приема
lds xl,PWMaddrL ;Загружаем LSB указателя массива ШИМ
ldi xh,PWMaddrH ;Загружаем MSB указателя массива ШИМ

st x,tmp ;Записываем уставку в нужный канал ШИМ

pop xh ;Восстанавливаем регистр
pop xl ;Восстанавливаем регистр
pop tmp ;Восстанавливаем регистр
reti ;31 такт (1.55 мкс) вместе со входом при приеме уставки канала

Написано в лоб и со всеми строгостями, можно и существенно укоротить.

Ответ будет?

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

Ответы


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

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

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


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