2008年
3月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2008-03-08 UARTの同期

_ USBとUART

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