0176774ワット発電中さん
2018/03/08(木) 16:46:36.12ID:+j+6ssDG昔、秋月で売っていたDDSの8桁の発振周波数をロータリエンコーダで増減し、
(PCとの任意のタイミングのUART通信でも変更、増減できるようにしていた)
液晶にその発振周波数を表示する、というパルスジェネレータを作った。
ロータリエンコーダを最高速度で回しても、操作性(応答性)を良くするために
1クリックの時間内で、液晶表示とDDSの周波数の更新が出来るようにしたかったので、
後から色々と悩むよりも、最初から最高速を目指してアセンブラで作った。
もっとも、あらかじめ厳密に時間計算したわけでは無いので、
Cでも可能だったかもしれない。
ところで10進数演算命令ではなくて、10進数演算「補正」命令で十分。
PIC18では2命令(加算と補正)で済むのに、AVRではフラグの問題もあり、
2桁のBCD加算に21命令もかかる(参考AVR204)、残念っw