G
Guest
Guest
Здравствуйте,
Мне нужна помощь в работе с USART в SYNC режим ПИК 16F870 используется как MASTER и передачи данных, ПОС 16F877A, что в качестве SLAVE и полученных данных.Я поставил на скорости до 62.5Mb /
с
Когда мастер передавать данные через TXREG, и я использую задержкой 200ms, а затем посылает следующий данных работ (раб получает должного данных):
MOVLW адрес, отправить на адрес, младший байт TX
MOVWF TXREG;
CALL DELAY_200MS; призывом безотлагательно 200msec обычных
Но когда я использую статус зарегистрироваться, чтобы убедиться, что TX завершения ее не работает:
MOVLW адрес, отправить на адрес, младший байт TX
MOVWF TXREG;
BTFSS TXSTA, TRMT; ли TX сдвига обл пуста
GOTO $ -1, если не пуста продолжать проверять
GOTO NEXTB, если пусто идти направить следующий байт
Мой вопрос, почему проверка состояния регистра не работает?
и как я могу синхронизировать между хозяином и рабом так каждый раз, когда капитан посылает байт работорговли будет получено это правильно?
Благодаря передовой.
Гедеон.
Магистерская программа начинается с:
ORG 00h
NOP
GOTO ГЛАВНАЯ
ORG 04H; прервать входа адрес
RETFIE
ГЛАВНАЯ
CLRF PORTC
БСФ СТАТУС, RP0; выберите bank1;
CLRF TRISC; установить все PORTC как OUTPUT
MOVLW 0x27; для 10MHz XTAL установить скорость 62.5kb к / с
MOVWF SPBRG
MOVLW 0xB0; Установить USRAT TX Статус Рег ', CSRC bit7 = 1, TXEN bit5 = 1, SYNC bit4 = 1
MOVWF TXSTA; bit1 TRMT (TX статус) 1 = empry
РМДС СТАТУС, RP0; выберите bank0
MOVLW 0x80
MOVWF RCSTA; Установить USART RX Статус Рег ', последовательный порт Включить SPEN bit7 = 1
БСФ INTCON, GIE; позволить целом прервать
БСФ INTCON, PEIE; позволить за прерывание
Мне нужна помощь в работе с USART в SYNC режим ПИК 16F870 используется как MASTER и передачи данных, ПОС 16F877A, что в качестве SLAVE и полученных данных.Я поставил на скорости до 62.5Mb /
с
Когда мастер передавать данные через TXREG, и я использую задержкой 200ms, а затем посылает следующий данных работ (раб получает должного данных):
MOVLW адрес, отправить на адрес, младший байт TX
MOVWF TXREG;
CALL DELAY_200MS; призывом безотлагательно 200msec обычных
Но когда я использую статус зарегистрироваться, чтобы убедиться, что TX завершения ее не работает:
MOVLW адрес, отправить на адрес, младший байт TX
MOVWF TXREG;
BTFSS TXSTA, TRMT; ли TX сдвига обл пуста
GOTO $ -1, если не пуста продолжать проверять
GOTO NEXTB, если пусто идти направить следующий байт
Мой вопрос, почему проверка состояния регистра не работает?
и как я могу синхронизировать между хозяином и рабом так каждый раз, когда капитан посылает байт работорговли будет получено это правильно?
Благодаря передовой.
Гедеон.
Магистерская программа начинается с:
ORG 00h
NOP
GOTO ГЛАВНАЯ
ORG 04H; прервать входа адрес
RETFIE
ГЛАВНАЯ
CLRF PORTC
БСФ СТАТУС, RP0; выберите bank1;
CLRF TRISC; установить все PORTC как OUTPUT
MOVLW 0x27; для 10MHz XTAL установить скорость 62.5kb к / с
MOVWF SPBRG
MOVLW 0xB0; Установить USRAT TX Статус Рег ', CSRC bit7 = 1, TXEN bit5 = 1, SYNC bit4 = 1
MOVWF TXSTA; bit1 TRMT (TX статус) 1 = empry
РМДС СТАТУС, RP0; выберите bank0
MOVLW 0x80
MOVWF RCSTA; Установить USART RX Статус Рег ', последовательный порт Включить SPEN bit7 = 1
БСФ INTCON, GIE; позволить целом прервать
БСФ INTCON, PEIE; позволить за прерывание