ATmega128__UART1
VFX
info at vfx.hu
Tue Apr 29 17:31:23 CEST 2003
Hali!
> No, a PIC/AVR polemia kapcsan ugy lattam az AVR-t erdemes tanulo eszkoznek
> valasztani.
> De, ez sem leanyalom pl. az OUT nem megy az UART1 register-el
> esete...........
>
> Merthogy:
> Probalkozom az ATmega128 UART1 belakasaval...
Valszeg ott a hiba, hogy az UART1 uj az AVR csaladon belul igy az UART1
regiszterei nem IO teruleten vannbak, hanem a memoriaba agyazva. Ezert
nem tudod IN/OUT utasitassal elerni csak STS, ST, stb.
Itt az en rutinom az INIThez (csak reszlet):
.equ SYSCLK = 16000000 ;System Clock [Hz]
.equ BaudSpeed1=38400 ;speed of UART1
.DSEG
Rx_Buffer:
Rx_Head: .byte 1
Rx_Tail: .byte 1
Rx_Data: .byte Rx_Buffer_Length
Tx_Buffer:
Tx_Head: .byte 1
Tx_Tail: .byte 1
Tx_Data: .byte Tx_Buffer_Length
UARTFlg: .byte 1 ;UART Flags
ROMTXT: .byte 3 ;ROM TXT kuldeskor az aktualis ROM pozicio cime
.CSEG
;************************************************************************
;** Init_UART1
;** Setup the inital states for the buffers, and make sure the handshake
;** is turned on (Not the Shaddap state), so we can talk.
;**
;**
;************************************************************************
Init_UART1: ldi R16,0
sts Tx_Tail,R16
sts Tx_Head,R16
sts Rx_Tail,R16
sts Rx_Head,R16
sts UARTFlg,R16
sts CMD_Len,R16
sts CMD_Pos,R16
;Set up Hardware HS I/O bits
; sbi SER_HSO_DIR,SER_HSO ;Set as output
; HS_Enabled ;!!! Ez csak az RTS/CTS hez kell
; cbi SER_HSI_PORT,SER_HSI ;Set as input, Pull-up
; cbi SER_HSI_DIR,SER_HSI
ldi R16,High(SYSCLK/(16*BaudSpeed1)-1)
sts UBRR1H,R16
ldi R16,Low(SYSCLK/(16*BaudSpeed1)-1)
sts UBRR1L,R16 ;BaudRate Gen.
ldi R16,0b00000000 ;RXCn, TXCn, UDREn, FEn, DORn, UPEn, U2Xn, MPCMn
sts UCSR1A,R16
ldi R16,0b11011000 RXCIE,TXCIE,UDRIE,RXEN,TXEN,UCSZn2,RXB8,TXB8
sts UCSR1B,R16
ldi R16,0b00000110 ;¾, UMSELn, UPMn1, UPMn0, USBSn, UCSZn1, UCSZn0,
UCPOLn
sts UCSR1C,R16
ret
UDV. VFX.
http://www.vfx.hu
More information about the Elektro
mailing list