Помогите чайнику(AT90S8535 UART)
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

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

Отправлено Радик 24 апреля 2003 г. 13:44

Здравствуйте !
Подскажите пожалуйста, что я сделал неправильно.
Задумывалось передавать в комп по 485-му интерфейсу символы
и ждать ответ.Почемуто не работает.
.include "8535def.inc"
.device AT90S8535

.def wreg = R16 ; General use working register
.def temp = R17

.equ BAUD = 35 ; 19200 bps at 11.059 MHz.
; порт B
.equ wrenable = 0 ; управление направлением передачи MAX485
.equ svdiod = 1 ; нога светодиода(+ сидит на Vcc,общий на этой ноге)

.cseg
.org 0
rjmp reset
reset:
ldi temp,low(RAMEND)
out SPL,temp ; Set stack pointer to last internal RAM location
ldi temp,high(RAMEND)
out SPH,temp
ldi wreg,BAUD
out UBRR,wreg ;Set baud rate generator
ldi wreg,0b00011011 ;TXEN=1,RXEN=0,RXB8=0,TXB8=0
out UCR,wreg ;Enable UART tx and rx w/o interrupt
sbi PortB,PB0
;ldi temp,0xFF ;initialize PortB as output
;out DDRB,temp
;ldi temp,0xFF ; enable trans on MAX485
;out PORTB,temp


trans:
cbi PortB,PB1
ldi wreg,'!'
rcall putchar
ldi wreg,'O'
rcall putchar
ldi wreg,'K'
rcall putchar
ldi wreg,'?'
rcall putchar
cbi PortB,PB0
rcall getchar
sbi PortB,PB0
rcall putchar
rcall delay
sbi PortB,PB1
rjmp trans

;***** Write a byte from wreg to UART
putchar:
sbis USR,UDRE ;Is UART transmitter ready?
rjmp putchar ;If not, wait
out UDR,wreg ;Put character to UART
ret
;***** Read a byte from UART to wreg
getchar:
sbis USR, RXC
rjmp getchar ;If no data look again
in wreg, UDR
ret
; цикл задержки
delay:
ldi temp,255
delay1:
dec temp
cpi temp,0
brne delay1
ret
Заранее спасибо.

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

Ответы



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

E-mail: info@telesys.ru