PIC PIC Sync do komunikacji za pomocą USART

G

gidp

Guest
Witaj,

Potrzebuję pomocy w eksploatacji USART w trybie SYNC PIC 16F870, kiedy jest stosowany jako MASTER i przekazywania danych, PIC 16F877A że ustawiony jako SLAVE i odebranych danych.Mam ustawić szybkość transmisji do 62.5Mb / s.

Gdy kapitan wysyłania danych poprzez TXREG i Używam opóźnienia 200ms a następnie wysyła dane obok utworów (slave pobiera prawidłowe dane):
MOVLW ADRES; adres jako LOW byte TX
MOVWF TXREG;
ZAPROSZENIE DELAY_200MS; opóźnienie połączenia 200msec rutynowych

Ale kiedy mogę używać stanu rejestru, aby sprawdzić, czy jest TX zakończył nie działa:
MOVLW ADRES; adres jako LOW byte TX
MOVWF TXREG;
BTFSS TXSTA, TRMT; sprawdzić, czy zmiana tx reg jest pusty
GOTO -1 dolarów, jeśli nie jest pusta nadal sprawdza
GOTO NEXTB jeśli pusty wysłać go do następnego bajtu

Moje pytanie jest dlaczego sprawdzania stanu rejestru nie działa?
i jak mogę synchronizacji między kapitanem a slave tak za każdym razem, gdy kapitan wysyła bajt niewolnikami będą go otrzymał prawidłowo?

Dzięki zaawansowanym.
Gedeona.

Master Program rozpoczyna się:

ORG 00h
NOP
GOTO MAIN
ORG 04H; przerywa wejście adres
RETFIE

GŁÓWNA
CLRF PORTC
BSF STATUS, RP0; wybierz bank1;
CLRF TRISC; ustawić wszystkie PORTC jako OUTPUT
MOVLW 0x27; do 10MHz XTAL ustawić szybkość transmisji do 62.5kb / s
MOVWF SPBRG
MOVLW 0xB0; Ustaw USRAT TX Status Reg "CSRC bit7 = 1, TXEN bit5 = 1, SYNC bit4 = 1
MOVWF TXSTA; bit1 TRMT (tx statusu) 1 = empry
BCF STATUS, RP0; wybierz bank0

MOVLW 0x80
MOVWF RCSTA; Ustaw USART RX Status Reg ", Serial Port SPEN bit7 Enable = 1
BSF INTCON, GIE; umożliwić ogólne przerwania
BSF INTCON, PEIE; umożliwić poza przerwania

 

Welcome to EDABoard.com

Sponsor

Back
Top