|
setup diary |
UARTではあたりまえだが、周波数の基準が多少異なっている場合には、通信がうまくいかない場合がある。USBの通信の仕方について読んでいて、思い付いたのだが、software UARTでも、ピンの変化に応じて同期を取り直したら、多少のボーレートのズレも気にならないのではないか。コードは多少長くなるが、AVRのアセンブラ関数を書いてみた。ピンの変化を調べるために、highとlowに分けなければならないので、約二倍の長さになってしまった。また、8bitの加算は、レジスタ間でしかできないようなので、その工夫も必要になった。動作確認はしていないが、今度必要になったときに使ってみよう。送信の方はそのままだけど。