ルックアップテーブル

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

すると、これでちゃんと動作するようになりました。めでたしめでたし。