ルックアップテーブル
PICでテーブルジャンプを使おうとしたら動作がおかしくなってしまいました。
second_table call wait_10ms movfw rc_time addwf PCL,f goto s00 goto s01 goto s02 goto s03 goto s04
そこでいろいろなサイトで調べてみた結果、org擬似命令で0x300や400などの先頭に分岐を含むルーチンを配置。しかしまだおかしくなる時があります。
さらにPCLATHについても指定してみました。
org 0x300 second_table call wait_10ms movlw high(second_table) movwf PCLATH movfw rc_time addwf PCL,f goto s00 goto s01 goto s02 goto s03 goto s04
すると、これでちゃんと動作するようになりました。めでたしめでたし。