Глюки с возвpатом байта. Или мои глюки?

Apr 15, 2004 10 Replies

Hello All!



Как я уже писал pаньше, столкнулся с такой пpоблемой. PIC16F628 ждет байта в RCREG и тут же возвpащает его в TXREG. Вот кусок кода.



st1 btfss PIR1,RCIF goto st1 movf RCREG,0 movwf TXREG st2 btfss PIR1,TXIF goto st2 goto st1


Hо в теpминальной пpогpамме я вижу не тот символ, котоpый надавил на клавиатуpе, а нечто дpугое.



В чем тут дело?



Bye, Sergey.


Hi Sergey,

Fri Apr 16 2004 00:45, Sergey Tkachenko wrote to All:

ST> PIC16F628 ждет байта в RCREG и тут же возвpащает его в TXREG. ... ST> Hо в теpминальной пpогpамме я вижу не тот символ, котоpый надавил ST> на клавиатуpе, а нечто дpугое.

ST> В чем тут дело?

в бодовой скорости

Пока, Алексей

Привет Rifkat!

Friday April 16 2004 09:13, Rifkat Abdulin wrote to Sergey Tkachenko:

ST>> st1 ST>> btfss PIR1,RCIF ST>> goto st1 ST>> movf RCREG,0 ST>> movwf TXREG RA>

RA> а ты уверен, что буфер передатчика в этот момент уже освободился?

Да, он уверен, для всех символов кроме первого - тут-же полудуплекс, он потом ждет конца передачи символа:

ST>> st2 ST>> btfss PIR1,TXIF ST>> goto st2

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
,
formatting link
, ftp://altor.sytes.net

ST> st1 ST> btfss PIR1,RCIF ST> goto st1 ST> movf RCREG,0 ST> movwf TXREG

а ты уверен, что буфер передатчика в этот момент уже освободился? поставь здесь задержку и поиграй ею. Или вбей влоб в txreg код, допустим, AA, и лови его - т.е. точно отладь передатчик. Можешь проверить еще, что валится из rcreg - сравни с ожидаемым, и зажги лампочку ;-)

ST> st2 ST> btfss PIR1,TXIF ST> goto st2 ST> goto st1

ST> Hо в теpминальной пpогpамме я вижу не тот символ, котоpый надавил ST> на клавиатуpе, а нечто дpугое.

ST> В чем тут дело?

ST> Bye, Sergey.

Привет Rifkat!

Friday April 16 2004 12:17, Rifkat Abdulin wrote to Alexander Torres:

ST>>>> st1 ST>>>> btfss PIR1,RCIF ST>>>> goto st1 ST>>>> movf RCREG,0 ST>>>> movwf TXREG RA>>>

RA>>> а ты уверен, что буфер передатчика в этот момент уже освободился? RA>

AT>> Да, он уверен, для всех символов кроме первого - тут-же RA>

RA> полудуплекс, он потом RA>

AT>> ждет конца передачи символа: RA>

ST>>>> st2 ST>>>> btfss PIR1,TXIF ST>>>> goto st2 RA>

RA> Это флаг прерывания по концу записи слова из txreg в tsr и готовности RA> txreg принять новый байт.

Совершенно верно. Это и требовалось.

RA> Однозначно момент освобождения TRMT можно ловить только по нему RA> самому (TRMT).

Зачем?

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
,
formatting link
, ftp://altor.sytes.net

ST>>> st1 ST>>> btfss PIR1,RCIF ST>>> goto st1 ST>>> movf RCREG,0 ST>>> movwf TXREG RA>>

RA>> а ты уверен, что буфер передатчика в этот момент уже освободился?

AT> Да, он уверен, для всех символов кроме первого - тут-же полудуплекс, он потом AT> ждет конца передачи символа:

ST>>> st2 ST>>> btfss PIR1,TXIF ST>>> goto st2

Это флаг прерывания по концу записи слова из txreg в tsr и готовности txreg принять новый байт. Однозначно момент освобождения TRMT можно ловить только по нему самому (TRMT).

ST>>>>> st2 ST>>>>> btfss PIR1,TXIF ST>>>>> goto st2 RA>>

RA>> Это флаг прерывания по концу записи слова из txreg в tsr и готовности RA>> txreg принять новый байт.

AT> Совершенно верно. Это и требовалось.

RA>> Однозначно момент освобождения TRMT можно ловить только по нему RA>> самому (TRMT).

AT> Зачем?

Пусть попробует не прерывание анализировать, а "пустоту" выходного буфера - может, у него он "забивается" ;-)

AT> Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 AT> aka snipped-for-privacy@yahoo.com AT>

formatting link
,
formatting link
, ftp://altor.sytes.net

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required