投稿

3月, 2021の投稿を表示しています

PIC32MX270 - MPLAB Harmony 3 - UART で printf

イメージ
PIC32 Harmony 目次 Harmonyで UARTの文字出力に printfが簡単に使えました。 Project Graphに Tools - STDIO を追加して、UARTと線で結ぶだけです。 たったこれだけで printfが使えるようになってしまいました。 変数の内容を表示する関数を、自分で作らなくて済んでらくちん! PIC32 Harmony 目次

PIC32 と MICROCHIP MPLAB Harmony 3 目次

イメージ
  MICROCHIP MPLAB X IDE, MPLAB XC32/32++ Compiler, MPLAB Harmony のインストール PIC32MX270 - はじめて MPLAB Harmony 3 を使って Hello World! PIC32MX270 - MPLAB Harmony 3 でタイマー割り込み MPLAB Harmony 3 - UART で printf を使う

PIC32MX270 - MPLAB Harmony 3 でタイマー割り込み

イメージ
PIC32 Harmony 目次 前回 UARTで文字の表示ができた ので、こんどはタイマー割り込みを使って 1秒毎に繰り返し文字を表示するように改造してみます。 まずは、変な操作をしてわけがわからなくなっても簡単に元に戻せるように、前回作成したプロジェクトのフォルダをそのままコピーしてバックアップを取りました。 回路は前回と同じ。 プロジェクトにタイマーを追加する MPLAB X IDE で前回作成した UARTで文字を表示するプロジェクトを開いて、[Tools] - [Embedded] - [MPLAB Harmony 3 Configurator] で MPLAB Harmony 3 Configuratorを開きます。 Project Graphに Peripherals - TMR - TMR1 を追加します。 UART1を追加したときと同じなので簡単。 タイマーの設定 Project Graphの TMR1をクリックすると、右側にタイマーの設定が表示されるので Enable Interrupts?  = チェックを入れたまま Select Prescaler = 1:256 Timer Period = 1,000ミリ秒 と設定します。設定はこれだけ。データシートを見ながらレジスタを設定していくのは結構骨が折れるのですが、Harmonyを使うと楽ちんです。 プリスケーラを変更すれば自動で入力クロックが変わるし、タイマーの周期をミリ秒で指定すれば自動でレジスタにセットする値を計算してくれるしでとても便利。 設定はこれで終了なので、Generate - Generate Code でコードを生成して、MPLAB X IDEに戻ります。 このように既存のプロジェクトにライブラリを追加しても、いい感じに処理してくれます。 コードの追加 Harmonyでタイマーのペリフェラルライブラリ(plib_tmr1.c)が追加されましたので、これを使って 1秒毎に UARTで文字を表示するように main.c にコードを追加します。 volatile uint8_t count; void timer_int(uint32_t status, uintptr_t context) // タイマー割り込みで呼ばれる関数 { count++; } int ma