考えてみれば、時間にクリティカルなのは、送受信のデータをループで待ちをかけながら、処理するときだけで、バッファリングは関係ないことに気づいた。割り込みルーチンをC言語側に持って来れば、面倒なCからASMへのアドレス渡しをしないですむ。これがうまく行ったのである。割り込みルーチンのdis-assmeblerリストには壮大なpush/popがつながり、最初動かないのであれこれ待ちの調整をしていたが駄目。原因はもっと簡単で、単に入力のHigh/Lowを間違えていただけ。これを直したら、全く問題なく動いた。38.4kbpsでも大丈夫。ソフトUARTのソースコードはこちらです。lzhファイルを解凍して中のADC_TEST.txtをご覧下さい。「ADC_TEST.lzh」をダウンロードこれで、この研究の成果は、公開しても大丈夫なレベルに到達した。平和な気持ちでこの記録を書いている。開発一段落(12/1/07)今度のマイコンは当面の目標を温度ロガーにおいている。室内の温度の推移は前から気になっていて、どの程度の温度差が各部屋にあるのか知りたいからである。このTiny26はEEPROMメモリが128バイトしかなく、保存できるデータ量が少なすぎる。シリアル通信のことも考えれば、既に買ってあるMega168は4倍の512バイトあり早くこれにすべきなのだが、生来のへそ曲がりがここにも出て、今のチップで何とか機能をつめこんでやろうと無理をしてきた。ソフトUARTもその典型だ。このあいだTiny26の後継機種861(これはSRAMが8キロ、EEPROMが512バイトある)が日本で売られていることを見つけ、わざわざ入谷まで行って買ってくることもないのだが、まあ、昔ハムで多段スーパーの向こうをはって0V1という最小の受信機でDX(遠距離通信)をやっていたようなものかもしれない。それでもこの温度ロガーは、タイマー1の一秒クロックで暫定のTODを作り(これは一回で想定どおり動いた。慣れてきたようだ)、PCに現在の温度を知らせるところまで来た。PCでのコマンド入力もバックスペースの処理を考えて相当こなれてきた。このへんは玄人だからな。ブレッドボードから健気にPCに十秒単位に温度を知らせているチップを見ているといとおしくなる。EEPROMの処理は検討だけでまだ手をつけていない。小さいけれどそれなりにファイルの形で使いたいので色々考えている。このときが何と言っても一番楽しい。Robustnessだったか、オブジェクトとして独立したソフトを作る工夫が面白い。「AVR」カテゴリの記事ソフトI2Cはクロックストレッチまで手を出してあえなく沈没(2017.09.02)オシロのテストどころかソフト開発で大はまり(2017.07.26)超音波方式の人感センサーI2C化と新しいオシロ(2017.06.29)motionの動体検知はRaspi3の電源が安定しない(2017.04.16)赤外線学習リモコンはデータ再現で挫折したまま進まず(2016.07.21)コメントコメントを書く名前:メールアドレス:(ウェブ上には掲載しません)アドレス(URL):この情報を登録するコメントは記事投稿者が公開するまで表示されません。標準入出力的EEPROM。