2018-01-01から1年間の記事一覧
①ポートの反転処理で発音する関数を追加します。 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]待つ } …
キッチンタイマーのタイムアップ時に、PWM機能を応用したオルゴールを鳴らす機能を追加したいと思います。 ①まずは、TMR2をPeripheralsに追加しTimer Periodを1msに設定します。 TMR2の設定 ②今回は、RP14(25Pin)をキャプチャーコンペア出力1に割り当てま…
PIC24FJ128にはEEPROMが無いので、設定値等を記憶しておくことが難しくなります。一つの解決策として任意のプログラムエリアの1ページをFlashメモリに割り当ててそのエリアをEEPROM代わりに使う方法があります。 作成したコードは次の通りです。 //--------…
今年は酷暑なのでエアコン必須です。我が家にはエアコンが各部屋にあり、電気代もバカになりません。そこで、今回作ったのがオフグリッド(売電しない)タイプの太陽光発電システムです。 300Wのパネルを2枚並列で使っているので、出力は300x2=600Wになり…
MCCで、 ◆InterruptModuleの設定画面です。 ◆PinModuleの設定です。 ※以降[PIC24/dsPIC33/PIC32MM MCUs by Microchip ...] ◆UARTの設定です。 ◆I2Cの設定です。 ◆ADCの設定です。 未 ◆PWMの設定です。 未 ◆PinMagerの設定です。
MCCでソースコードを作ります。 コンフィグレーションはUSBブートローダと同じにする必要があります。 設定でデフォルトから変更するのは次の通りです。 Generateボタンを押します。 出来上がったCWは以下の通りです。 // CONFIG4#pragma config DSWDTPS = D…
機能仕様書が無いとプログラムが作れないので、仮に以下のような仕様にします。 【main.cを以下のように変更します】 時間設定画面に遷移するようにプログラミングします。 >|c| int main(void) { SYSTEM_Initialize(); //タイマー停止 TMR1_Stop(); __delay…