##環境
- Terasic DE0-Nano
- Quartus Prime 18.1 Lite Edition
- Altima NIOS II による開発 セクション1のページ7にある通りコード中にHAL APIタイマを実装した。
##1秒周期から500ms周期にすると割り込みが入らずに1回で終わる
alt_ticks_per_second()*0.5として、500ms周期のタイマを期待したが、1回きりの実行で終わってしまう。
Debugモードでalt_ticks_per_second()の値を見ると、1が返っていた。どうやら1×0.5=0.5 →0となっていたためらしい。
Platform editorでtimer_0のTimeoutの設定が「1s」であるからalt_ticks_per_second()が1であるらしい。
Timeoutの設定を1msとすると、alt_ticks_per_second()が1000に変化したので、alt_ticks_per_second()*0.5として期待の動作になった。
##余談
この件の最中、Debugモードがおかしくなった。
具体的には、ファイルcrt0.sのmovui r2, NIOS2_DCACHE_SIZEでブレークしてしまい、
Continueしても画面が変化せず、main()に進まない。
結局、NiosII Debug画面のBreakPointViewのRemove All BreakPointと、Clean Projectをして正常動作になった。
原因不明で腑に落ちないけども。