PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART mit 42000 Baud / Assembler Übersetzung



BlaueLed
04.05.2010, 03:54
Hallo zusammen,

ich möchte gerne Daten über die serielle übertragen. Ich müsste dazu folgenden Code nach Bascom übersetzen.



; **** startup loop ****
init_startup:

rcall wait10ms
rcall wait10ms
rcall wait10ms
rcall wait10ms
rcall wait10ms

ldi temp1, 0b00000100
out DDRD, temp1

; 12 0F 00 00 55 55 55 55 55 6-chan
; 91 11 01 00 55 55 55 55 55 8-chan
ldi temp1,0x12
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x0f
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x00
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x00
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x55
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x55
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x55
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x55
mov u_buffer_l,temp1
rcall uart_transmit
rcall wait610us
ldi temp1,0x55
mov u_buffer_l,temp1
rcall uart_transmit

ldi temp1, DIR_PD
out DDRD, temp1
ldi temp1, INIT_PD
out PORTD, temp1

rcall wait610us
clr u_buffer_h
clr u_buffer_l


Dort werden 9 bytes mit einer Pause von 610us zwischen den einzelnen Bytes übertragen. Ich weiß jetzt nur nicht, wie ich die 610us Pause zwischen den einzelnen Bytes hinbekomme. Kann mir da jemand von Euch behilflich sein ?


Gruß BlaueLed

Jaecko
04.05.2010, 10:03
Bascom-Pausefunktion: waitus 610

Einfach ein Byte senden, Warten, nächstes Byte senden.