組込み系システム開発室by藤原技研M

製作中の組込み機器や気になる開発ツールなどを中心に記事を書いています。

組込み系

キッチンタイマーの製作(7)確認音の追加

①ポートの反転処理で発音する関数を追加します。 void beep(int time) { int i; for (i = 0; i < time; i++) { IO_RB14_SetHigh(); // portに’H’を出力 __delay_us(500); // [us]待つ IO_RB14_SetLow(); // portに’L’を出力 __delay_us(500); // [us]待つ } …

キッチンタイマーの製作(8)確認音の音程を変える

キッチンタイマーのタイムアップ時に、PWM機能を応用したオルゴールを鳴らす機能を追加したいと思います。 ①まずは、TMR2をPeripheralsに追加しTimer Periodを1msに設定します。 TMR2の設定 ②今回は、RP14(25Pin)をキャプチャーコンペア出力1に割り当てま…

PIC24FJ128GB204用 Flash Memory書き込みプログラム

PIC24FJ128にはEEPROMが無いので、設定値等を記憶しておくことが難しくなります。一つの解決策として任意のプログラムエリアの1ページをFlashメモリに割り当ててそのエリアをEEPROM代わりに使う方法があります。 作成したコードは次の通りです。 //--------…

PIC24FJ128GB204用のアプリの作成(2)

MCCで、 ◆InterruptModuleの設定画面です。 ◆PinModuleの設定です。 ※以降[PIC24/dsPIC33/PIC32MM MCUs by Microchip ...] ◆UARTの設定です。 ◆I2Cの設定です。 ◆ADCの設定です。 未 ◆PWMの設定です。 未 ◆PinMagerの設定です。

PIC24FJ128GB204用のアプリの作成(1)

MCCでソースコードを作ります。 コンフィグレーションはUSBブートローダと同じにする必要があります。 設定でデフォルトから変更するのは次の通りです。 Generateボタンを押します。 出来上がったCWは以下の通りです。 // CONFIG4#pragma config DSWDTPS = D…

キッチンタイマーの製作(6)機能仕様書

機能仕様書が無いとプログラムが作れないので、仮に以下のような仕様にします。 【main.cを以下のように変更します】 時間設定画面に遷移するようにプログラミングします。 >|c| int main(void) { SYSTEM_Initialize(); //タイマー停止 TMR1_Stop(); __delay…

キッチンタイマーの製作(4)パルス出力:スピーカ制御

ボタン操作時や、タイマーアラーム用にビープ音を鳴らす必要があります。鳴らすためには以下の様な点を考慮する必要があります。 <出力回路> ポート出力をHigh,Low繰り返すことでビープ音を鳴らすことができます。ただし、ポートの出力電流は数ミリアンペ…

キッチンタイマーの製作(2)MCCで入出力ポートの追加

マイコンのクロック設定をMCCを用いて設定します。 MCCを用いて入出力ポートの割当を行います。 今回割り当てるポートは ・入力:RA2、RA3、RA4 ・出力:RB0、RB1 ※RB0はRP0と同じピン、RB1はRP1と同じピン Pin Manager.GridウィンドウのPin Module項目のGPI…

キッチンタイマーの製作(5)タイマ割り込み

タイマー割り込みの設定をします。 MCCを起動してDevice Resourcesウィンドウの timer のTMR1をダブルクリックすると以下のような画面になるので、 Enable Timer Interruptにチェックを入れて ・Timer Period: ・Callback Function rate: を操作し、結果的に…

キッチンタイマーの製作(3)I2CでLCDの制御

表示素子にI2C接続小型キャラクタLCDモジュール 8x2行を使用します。 通信方式がI2Cなので、メニューのMCCをクリックして設定をします。 PeripheralsにI2C2(今回は2つ目)を設定します。 Device Resources ウィンドウのI2C2[PIC24 /dsPIC33 / ・・・をダブ…

キッチンタイマーの製作(1)ハードウェアの準備

PICマイコン(PIC24FJ64GB002)を使ってキッチンタイマーを製作します。 【回路図】 【必要なパーツ】 入手先:http://akizukidenshi.com/catalog/top.aspx 商品名 品番 単価[円] 1 PICマイコン PIC24FJ64GB002-I/SP 390 2 ブレッドボード BB-102 300 3 ブレ…

PIC24FJ用ブートローダ (boot loader)の作成(4)

<プログラムの書き方> 【ブートローダ】 MPLAB IPE v4.01を用いて書き込みます(PICkit3を利用) 【アプリケーション】 HIDBootLoader.exeを用いて書き込みます(USBを利用) 【ブートローダ用HEXファイル】 PIC24FJ64GB002用: マイコンな日曜オリジナル…

PIC24FJ用ブートローダ (boot loader)の作成(3)

ブートローダーをPICマイコンに書き込んだ後、USBでPCに接続しデバイスマネージャーで確認するとこうなります。 赤線の所が追加になります。 続きは(4)へ http://fujiharagiken.hatenablog.com/entry/2017/10/12/090337

PIC24FJ用ブートローダ (boot loader)の作成(2)

PIC24FJ128GB204でリンカーファイル(.gld)を用いて作成したプログラムがうまく動作しません。デバッガー(PICkit3)でステップ実行しながらSFR(スペシャル・ファンクション・レジスター)を調べてみると、いくら出力ポート設定しても設定した値が入らず、入力…

PIC24FJ用ブートローダ (boot loader)の作成(1)

【ブートローダとは】 マイコンを起動した時に、ある特定の条件(スイッチを押しているなど)で呼び出しするプログラムのことで、今回は、そのプログラムに、USB経由で受信したファームウェアで自分自身を書き換える機能を搭載します。 【目的】 ①授業でPIC…