16F877Aで
ソースコードはココ.
UART割り込みecho
いざ、書き込んで、Teratermを起動。
シリアルを選択、設定->シリアルポートからボーレートも確認。
なんだこれ。
なんだこれ。
生データを見たいと思い調べてみるとDebugモードがあるらしい。
C:\Program Files (x86)\teraterm\TERATERM.INIのDebug=offをDebug=onとする。
FE FE FE FE FE …
…え?
‘A’や0x31など試す
FE FE FE FE FE …
どうにも正常に転送できていないらしい、だが転送されているっぽい動きなのでTXモードは有効にできているのだろうと。
レジスタの設定を見直す、見直す。
BRGH = 0 ( 低速 )
(非同期)ボーレート = FOSC /(64(X+1))
あっ。 TXSTA = 0x20 としてみたらAと表示された。
TMR1を利用して割り込み
なぜだろう, 全く時間が合わない.
かなり悩んだ.
原因はTMR0とTMR1のカウンタのビット数が異なることだった.
データシートは熟読しよう
Leave a Reply