Ответ:
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

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

Отправлено misyachniy 23 апреля 2003 г. 18:55
В ответ на: PDIUSBD12+AT89C51 отправлено BAT 23 апреля 2003 г. 18:14

Если не пожует:
[pre]
;----------------------------------
; инициализация PDI
D12_init:
selA
mov a,#0F4h
movx @R0,A ; команда считать регистр прерываний

selD
movx a,@R0 ; считываем регистр прерываний PDI (DMA)
movx a,@R0 ; считываем регистр прерываний PDI (USB Интерфейс)

mov r1,#5 ; шесть Endpoint
ReadAllLTS:
selA
mov a,r1
orl a,#40h
movx @R0,A ; команда считать состояние последней транзакции

selD
movx a,@R0 ; считали

dec R1
cjne R1,#0FFh,ReadAllLTS ; Все EndPoint?

command 0FBh ; обращения к DMA

seld

mov a,#040h ; разрешить прерывание ENdpoint 4
movx @R0,a

command 0F3h ; обращения к Mode
seld
mov a,#16h ; Non Iso mode (Bulk?) + Подключиться к USB Шине
movx @R0,A ; первый байт

mov a,#MCUclk ;3 - 12МГц, 1- 24МГц
movx @R0,A ; второй байт

Command 04h ; выбрали Main Out
Command 0F0h ; будем читать

Clearbuffer ; очистим MAinIn
Clearbuffer

clr TCON.1 ; прерывания INT0 уровнем
mov IE, #81h ; разрешили прерывания INT0
; проинициализировали интерфейс


КОММЕНТАРИИ
;-------------------------------------------------------------
SelA macro
SETB A0 ; будет запись команды
endm
;-------
SelD macro
CLR A0 ; будет запись/чтение данных
endm
;---------------
Command macro par
sela
MOV A,#PAR
movx @R0,A
endm
;--------------------
ClearBuffer macro ; PDI буфер считан можно принимать следующие данные
command 0F2h
endm
[/pre]

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

Ответы



Перейти к списку ответов ||| Конференция ||| Архив ||| Главная страница ||| Содержание

E-mail: info@telesys.ru