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

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

Отправлено Олег13 17 июня 2004 г. 15:20
В ответ на: Интересный глюк c UARTом у atmega8515 отправлено Олег13 17 июня 2004 г. 12:54

MainLoop:
sbis USR, UDRE ; передатчик UART готов принять данные ?
rjmp MainLoop ; переход, если передатчик не готов
cp dptRecBufferRead, dptRecBufferWrite
brne MainLoop ; данных нет
mov ptReadL, dptRecBufferRead
ldi ptReadH, 1
ld CL, ptRead+
cpi ptReadL, low(RecBuffer+RecBufferDepth)
brne L_Rec_
ldi ptReadL, low(RecBuffer)
L_Rec_:
mov dptRecBufferRead, ptReadL
out UDR, CL ; запись UART Data Register
rjmp MainLoop

ReceiveInterrupt:
in bTempSREG, SREG ; сохранение значения регистра статуса
in AH, USR
in AL, UDR ; чтение данных UART
sbic USR, UDRE ; передатчик UART готов принять данные ?
rjmp L_TransmitDataRSI
mov ptWriteL, dptRecBufferWrite
ldi ptWriteH, 1
st ptWrite+, AL
cpi ptWriteL, low(RecBuffer+RecBufferDepth)
brne L_Rec
ldi ptWriteL, low(RecBuffer)
L_Rec:
mov dptRecBufferWrite, ptWriteL
out SREG, bTempSREG ; восстановление значения регистра reti
L_TransmitDataRSI:
out UDR, AL ; запись UART Data Register
out SREG, bTempSREG ; восстановление значения регистра reti

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

Ответы



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

E-mail: info@telesys.ru