Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC32MX250F128B MPLABX XC32 Harmony でLチカしてみた。- Interrupt -

HarmonyでLチカのInterruptバージョンもやってみた。
PIC32MX250F128B MPLABX XC32 Harmony でLチカしてみた。」の続き。
回路は前回と全く同じだ。
Clockの設定も前回と同じ。
変更するところだけ書く。

TimerはInterruptモードで使うので、以下のように変更する。
pic32mx250f128b_harmony_led_blink_timer_01
この部分を新たに追加した。
pic32mx250f128b_harmony_led_blink_timer_02
コードは、以下の2つに変更を加えた。
pic32mx250f128b_harmony_led_blink_timer_05
まず、Harmonyの吐き出したmain.cに以下の変更を加える。
pic32mx250f128b_harmony_led_blink_timer_03
さらに、system_interrupt.cに赤線の部分を追加する。
pic32mx250f128b_harmony_led_blink_timer_09
20000000 / 64 / 78 = 4006Hz
ということなので、ほぼそれらしい実測値となっている。
pic32mx250f128b_harmony_led_blink_timer_06

今回参考にしたサイト
Using Harmony Static Drivers to Control Timers
手動で書き足す必要があるコードについては、以下の2つの部分に書かれている。
pic32mx250f128b_harmony_led_blink_timer_07
pic32mx250f128b_harmony_led_blink_timer_08

追記(2017/09/24)
上の通りだと4kHzで点滅する。
ロジアナなどを使わないと肉眼では動作を確認できない。
下のように変更すると10Hzになる。
20000000 ÷ 256 ÷ 7800 = 10Hz
これなら肉眼でも点滅を確認可能だ。

関連記事
PIC32MX250F128B MPLABX XC32 Harmony でLチカしてみた。
PIC32MX250F128B MPLABX XC32 Harmony でLチカしてみた。(改めて見直し)
PIC32MX250F128B MPLABX XC32 Harmony でLチカしてみた。- Timerを追加 –

このエントリーをはてなブックマークに追加

Posted under: Harmony Configurator, PIC32MX250F128B


3 comments

  • こんにちは。
    Harmonyを使ったLチカの1つめの記事のは動いてくれたんですが、2つめのInterrupt modeの記事のはLEDがずっと点灯しっぱなしで動いてくれませんでした。どこが悪いんでしょう?ちなみにLEDはRB15に付けています。
    main.cのDRV_TMR0_Start();はTMR2ではないのですね。

    • たくさん、こんにちは。
      記事中にも書いてありますが、約4kHzで点滅しますので人間の目には点灯したままにしか見えません。
      TimerのPrescaleをTMR_PRESCALE_VALUE_256、Timer Periodを7800にしてみてください(上に追記しておきました。)。
      計算上10Hzになるはずですので、これなら肉眼でも点滅して見えます。
      もちろん、Clockの方を変更してもいいです。
      いろいろお試しください。

  • sahara さん、こんにちは。
    お返事が遅くなりすみません。
    ちゃんと点滅することを確認できました!

    有難うございます。

たく へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.