第17回 ブレッドボードの回路を動作させてみる

今回はプログラムをコピペして、ブレッドボード回路の動作確認をしてみます。PICマイコンの開発の流れを理解することを目的としています。プログラムの詳細は次回以降の記事で説明します。

目次

今回の説明

PICマイコン電子工作入門の基礎編は、次のステップで説明しています。

この記事の説明は「❸ プログラムを作る」のうち、「製作したブレッドボードの動作確認」を説明します。

前回までの説明で、ブレッドボードで回路を組み立てて開発環境もインストールしました。

今回はプログラムをコピペして回路が問題なく動作するか確認してみます。今回の記事の目的は、プログラムの中身を理解することではなく、MPLAB X IDEを使ったPICマイコンの開発の流れを把握することを目的としています。

  1. LEDを電池と抵抗のみで光らせる回路を組み立てる
    PICマイコンの回路を組み立てる前に、ブレッドボードの取り扱いに慣れておくことにします。電池、抵抗、LEDのみを使って、ブレッドボード上に回路を組み立ててLEDを光らせてみます。ここでは電池、抵抗、発光ダイオードの回路記号と回路図の説明をして、回路図からブレッドボードに組む方法を説明します。まずはブレッドボードに慣れましょう!
  2. PICマイコンのベース回路を組む
    PICマイコンのはじめの一歩の回路は、LEDを1秒に1回光らせるだけの回路です。
    この回路をブレッドボードに組み立てます。
  3. プログラムを作る ⬅︎ 今回
    LEDを1秒に1回光らせるプログラムを作成します。
  4. PICマイコンに書き込んで動作させる
    作成したプログラムをPICマイコンに書き込んで動作させてみます。
  5. ベース回路にスイッチを追加
    LEDの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。
    これまではLEDを光らせる、という出力制御をしましたが、今度はPICマイコンで外部からスイッチの信号を入力する方法を習得します。
  6. ベース回路にブザーを追加
    スタートスイッチ付きの、1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーとして完成させます。

MPLAB X IDEの起動

早速、MPLAB X IDEを起動してみましょう。

Windowsは、デフォルト設定でインストールした場合、デスクトップに「MPLAB X IDE vX.XX」があると思います。デスクトップにない場合は、「Windowsメニュー」の検索欄で「mplab」と入力するとMPLAB X IDEのアプリケーションが見つかると思います。

macOSは、「アプリケーション」→「microchip」→「mplabx」→「バージョン番号フォルダ」→「MPLAB X IDE vX.XX.app」です。

MPLAB X IDEを起動すると、次のようなウインドウが表示されます。(macOS版のウインドウですが、Windows版もほぼ同様のウィンドウになります)

これから実際にMPLAB X IDEでプログラムファイルを作成し、ブレッドボードの動作確認をします。

動作確認をしますので、「作成したブレッドボード」「電池ボックス」「PICkit」「USBケーブル」を準備して始めましょう!

開発の流れ

最初に開発の流れを確認します。

一般的な開発の流れ

開発規模の大小にかかわらず、PICマイコンのプログラム開発の流れは次のようになります。

Mplabx development flow

開発の流れとして「プロジェクト」「ビルド」など、あまり馴染みのない言葉が出てきていますよね。

でも今は具体的にわからなくても大丈夫です!

これから実際に開発の流れを体験してみますので、その過程でどんなものなのか感覚をつかんでみてください。

今回の作業の流れ

今回は「LEDを1秒間に1回ピカッと光らせる」プログラムを作成して動作確認します。

作業は次のような流れで進めます。

  • プロジェクト作成
  • プログラム作成
  • ビルド
  • 書き込み
  • 動作確認

❶ プロジェクト作成

プロジェクトとは?

MPLAB X IDEでPICマイコンのプログラムを作成するとき、最初に「プロジェクト」を作成します。

急に「プロジェクト」と言われてもわかりづらいですよね。プロジェクトがどのようなものかイメージできるように、身近な例で説明します。


例えば、これから旅行の計画を立てるとします。PCを使ってネットで旅行の情報を調べたり、予算を立てるとき、調べた情報をファイル保存したりや予算のExcelファイルなどを作成します。

これらのファイルは、おそらく「旅行計画」などの名前のフォルダを作成して、そのフォルダの中にまとめて保存しておくと思います。

「プロジェクト」とは、旅行計画の「フォルダ」のようなものです。必要なファイルを一つにまとめたもの、というイメージでしょうか。

PICマイコンのプログラムを作成する場合、プログラムのファイル以外にも補助的なファイルが必要になります。そのような必要なファイルをまとめたものが「プロジェクト」と呼ばれます。

実際にこれからMPLAB X IDEでブロジェクトを作成しますが、そのプロジェクトは実際にはフォルダで管理されています。

このあとの作業で作成するプログラムのファイルは、作成したプロジェクトの中に保存することになります。

プロジェクトの作成

プロジェクトの作成手順の説明はmacOS版のMPLAB X IDEで進めますが、Windows版も同様の画面、操作になります。ここからは一緒に作業を進めていきましょう!

最初に新規に「プロジェクト」を作成します。

MPLAB X IDEの「File」メニューから「New Project…」を選択します。

これからプロジェクトを作成するためのいろいろな情報を設定していきます。

プロジェクト種類の選択

最初に次のような画面が表示されます。

この画面では、プロジェクトの種類を設定します。通常のPICマイコンのプログラムを作成する場合は、Catetories欄とProject欄から次の項目を選択します。

選択項目
Categories欄MicroChip Embedded
Projects欄Application Project(s)

選択したらNext>ボタンをクリックします。

PICマイコンの型番とPICkitの種類の選択

次の画面では、このプロジェクトで使用する「PICマイコンの型番」と「PICkitの種類」を指定します。

「PICマイコンの型番」はDevice欄から選択します。プルダウンメニューから選択できますが、数が多いので探すのは大変です。

そこで、次のようにDevice欄に今回使用するPICマイコンの型番である「12f1822」と直接入力してください。入力は小文字でもOKです。

入力すると次のように「PIC12F1822」が見つかりますので、選択します。

次に、PICkitの種類をTool欄から選択しますが、デフォルトの状態では選択できません。

次のように、「Show All」にチェックをつけるとサポートしているPICkitのリストが表示されますので、使用するPICkitを選択します。

デバッグ用ヘッダの選択

次は、、、ちょっと難しい内容ですので、そっと「Next>」ボタンをクリックして次に進めましょう!

ここでは、プログラムをデバッグするときの設定になります。基礎編ではデバッグは行いませんので、ここでは「None」を選択したまま次の設定に進みます。

コンパイラの選択

次は使用するコンパイラの指定です。「XC8」という項目にインストールしたXCコンパイラが表示されていますので、それを選択します。(次の画面では「XC8 (v3.00) 」を選択しています)

なお、XCコンパイラは何ヶ月かごとにバージョンアップされます。新しいバージョンをインストールすると、古いバージョンを上書きするのではなく、追加でインストールされます。XCコンパイラを複数バージョンインストールすると、上のコンパイラ選択画面で複数のバージョンがリストされます。

プロジェクト名などの設定

最後にプロジェクト名称などを設定します。プロジェクト名は「LED_Flash」(「LED点滅」という意味)にしましたが、好みの名前で構いません。

ここでは次の設定を行います。設定後、「Finish」をクリックするとプロジェクト作成が完了します。

項目意味設定内容
 ❶ Project Nameプロジェクトの名前LED_Flash
(好みの名前で構いません)
 ❷ Project Locationプロジェクトの保存場所
(ブロジェクトフォルダの保存場所)
必要に応じて変更してください
変更する場合は「Browse…」ボタンで変更します
 ❸ Set as main projectプロジェクトを操作対象にするかどうかの設定チェックをつけます
 ❹ Open MCC on FinishMCCを自動起動するかどうかの設定(MCCとはコード自動生成機能です)チェックを外します
 ❺ EncodingプログラムファイルのエンコーディングUTF-8

「❶ Project Name」はプロジェクト名の指定です。ディスク上では指定した名前のフォルダが作成されます。

「❷ Project Location」はプロジェクトの保存場所(保存フォルダ)です。

フォルダの中にさらにフォルダを作成することもできます。もし学習用や製作用などでフォルダを分けたい場合、フォルダを作成したあと、この項目でそのフォルダを指定します。

「❸ Set as main Project」は、MPLAB X IDEでの操作対象にするかどうか(メインプロジェクトにするかどうか)の設定です。

MPLAB X IDEでは、複数のプロジェクトを開くことができます。

MPLAB X IDEで、例えば「プログラムを書き込む」という操作したとき、操作対象にしているプロジェクト(メインプロジェクト)に対して行われます。

今回は「LED_Flash」というブロジェクトを作成して、すぐにこのプロジェクトを操作しますので、「Set as main Project」にはチェックをつけておきます。

「❹ Open MCC on Finish」はMCC機能を自動的に起動するかどうかの設定です。

「MCC」とは、プログラムを自動生成する機能ですが、基礎編と応用編では使用しませんのでチェックをOFFにしておきます。(MCCは実践編で補足します)

「❺ Encoding」はプログラムファイルなどのエンコーディング(文字コード)です。日本語の入力をしますので、一般的な「UTF-8」を指定します。


これでプログラムを作成するためのプロジェクトができました。

プロジェクトが作成され、次のような状態になります。

このあと、このプロジェクトにプログラムのファイルを新規に追加して、プログラムを作成します。

❷ プログラム作成

ここまでの操作でLED点滅制御のプログラムを作成するための「プロジェクト」を作成しました。

次にこのプロジェクトにプログラムを書くためのファイルを追加します。

このファイルですが、自分の好きな名前がつけられますが、ここではC言語の一般的なファイル名である “main.c” にします。このセクションでは、このmain.cを新規にプロジェクトに追加して、main.cにプログラムをコピペすることにします。今回はMPLABXでの開発〜動作確認までの流れを確認するためなので、main.cの中身には触れないことにします。

補足ですが、プログラム規模が大きくなってくると、main.cだけで開発するとわかりづらくなりますので、いくつかのファイルに分けたりします。その場合は、ひとつのプロジェクトにいくつものプログラムファイルが追加されることになります。

新規ファイル作成

それでは、main.cという名称のファイルをこのプロジェクトに追加しましょう。ソースコードは、プロジェクトの”Source Files”というディレクトリに追加します。

ここで補足ですが、この”Source Files”というディレクトリは、実際にはFinder(macOS)やExplorer(Windows)で探してもどこにもありません。あくまで、MPLABXがそれぞれのプロジェクトに対して仮想的に管理してくれているだけです。(ちょっと込み入った話ですので、この話はよくわからなくても今後の理解に影響はありません)

main.cを追加するには、プロジェクトにある”Source Files”というフォルダを右クリックします。右クリックするとコンテキストメニューが表示されますので、New → main.c… を選択してください。

続いて、作成するファイルの名称などを聞かれますので、以下のダイアログのように “File Name” 欄に “main”と入力します。拡張子(.c)は “Extension”欄で指定しますが、すでに “c” が選択されていると思いますのでこのままでOKです。設定したら “Finish” ボタンをクリックします。

この手順で、Source Filesの下にmain.cが作成されたと思います。それと同時に、右の広い領域に以下のようにmain.cの内容が表示されたと思います。このエディタでmain.cにプログラムを書いていくことになります。このファイルはCのメインファイルとして作成したため、メイン関数で使われる典型的な内容がすでに書かれています。

プログラムをコピペ

さて、プログラムの中身は次回以降の記事で詳細に説明しますので、まずは現在main.cに書かれている内容をすべて消去して、以下のプログラムをコピペしてください。(macOS/Windows共通です)

/*
 * File:   main.c
 */
#include <xc.h>

// PIC12F1822 Configuration Bit Settings
// CONFIG1
#pragma config FOSC = INTOSC    // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = OFF      // MCLR Pin Function Select (MCLR/VPP pin function is digital input)
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Memory Code Protection (Data memory code protection is disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config IESO = OFF       // Internal/External Switchover (Internal/External Switchover mode is disabled)
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled)
// CONFIG2
#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
#pragma config PLLEN = OFF      // PLL Enable (4x PLL disabled)
#pragma config STVREN = OFF     // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset)
#pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LVP = ON         // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)


// クロック周波数指定
// __delay_ms()関数が使用する
#define _XTAL_FREQ 1000000

void main(void) {

    // PICマイコン設定
    OSCCON = 0b01011010;  // 内部クロック周波数を1MHzに設定
    ANSELA = 0b00000000;  // すべてのピンをデジタルモードに設定
    TRISA  = 0b00001000;  // すべてのピンを出力モードに設定(ただしRA3ピンは常に入力モード)

    // LEDを消灯する
    LATA5 = 0;
    
    // LED点滅処理(永久に繰り返す)
    while(1){
        // LEDを950ms消灯する
        LATA5 = 0;
        __delay_ms(950);            
        // LEDを50ms点灯する
        LATA5 = 1;
        __delay_ms(50);
    }

    // 以下の命令は実行されない
    return;

}

これでプログラムが完成しました。ここでファイルを保存します。アプリケーションメニューの「File」→「Save…」を選択します。ここまでの作業で以下のようになります。

❸ ビルド

次にビルドをします。

ビルドとは、先ほど保存したC言語のプログラムをPICマイコンが処理できるコードに変換する作業です。

ビルドはエラーがなければすぐに終わります。今回はプログラムをコピペいただいたのでエラーは出ないと思います。

ツールアイコンにビルドボタンがありますので、そのボタンをクリックしてください。

Build button

クリックすると、右下の領域に以下のように何か文字が表示されると思います。これは、ビルド過程でコンパイラから出力される文字(ログ)の表示領域です。エラーがあれば、該当箇所が青文字で、エラーの内容が赤文字で表示されます。

Build results

この領域の最後の行に、”Loading completed”と出力されればビルド成功です。あとは、ビルドされたプログラムをPICマイコンに書き込む作業です。

❹ 書き込み

書き込みはブレッドボードのコネクタにPICKitを接続して書き込めばOKですが、実はこの状態で書き込みを行うと、PICマイコンが見つからない、というエラーになってしまいます。これについて原因と対応方法を説明します。

PICマイコンにプログラムを書き込むには、PICマイコン内部のプログラムを記憶しておくメモリに電圧をかけてプログラムを書き込みむ必要があるため、電源を供給する必要があります。この電源をどのように供給するかが問題になります。

この電源供給方法には2通りあります。ひとつは、電池ボックスをブレッドボードにつないで回路側の電源から供給する方法です。もうひとつはPICKit本体から供給する方法です。

PICKitから供給できるのであれば、書き込むときにわざわざ電池ボックスをブレッドボードに接続する必要はないので、常にPICkitから書き込んだ方がいいですよね。でも、PICKitから電源を供給する方法ではうまくいかない場合があるんです。ただし、今回の回路ではPICKitから電源供給しても問題ありません。

細かい内容になりますが、この背景を簡単に説明しておきます。

実は、PICKitから電源を供給する、というのは、そのターゲットの回路に電力を供給することになります。PICKitから電力を供給すると、そのターゲットの回路が必要とする電流が流れます。回路が大規模の場合、PICKitからの電力供給は追いつかなくなり、結果的にプログラムを書き込めなくなってしまいます。

PICKitから電源を供給するといちいち回路側の電源を接続しなくてよいので手軽ですが、この場合の回路はあまり電力を使わない、というケースに限ります。電力をたくさん使う回路の場合は、回路側で用意している本来の電源をつなげて電源を供給し、PICKitからは電源を供給しない設定で書き込みます。

プロジェクトのデフォルトは、PICKit3から電源を供給しない設定になっています。今回の回路はLEDをひとつのみ点灯する回路ですので、電力をあまり使いません。そのため今回はPICKitから電源を供給することにします。

それでは、以下の手順でPICkitから電源を供給する設定に変更して、PICマイコンにプログラムを書き込みましょう。

  1. プロジェクト設定ダイアログを開く
  2. プロジェクト設定の中のPICKit3のプログラム書き込み時の電源供給設定をONにして、電圧を5Vに設定する
  3. プログラムを書き込む

それでは始めます。

まずプロジェクトの設定ダイアログを表示するため、”LED_Flash”というプロジェクト名を右クリックして、メニューの一番下の”Properties”を選択します。

Project properties menu

以下のようなプロパティダイアログが表示されますので、次の設定をします。

  1. 左の項目から「PICkit3」または「PICkit4」を選択します
  2. 右上のポップアップメニューから「Power」を選択します
  3. 「Power target circuit from PICkit」のチェックボックスをオンに、Voltage Levelを5.0に設定します
プロジェクト設定

この設定ができたら、OKボタンをクリックします。このダイアログで、プログラム書き込み時、電源をPICkit3から5.0Vで供給する、という設定をしたことになります。

これで書き込みの準備ができました。

ではこれから実際に書き込みます。まず、Mac/PCとPICkitをUSBケーブルで接続します。PICkitは以下のように、前回までに製作したブレッドボードのピンヘッダに差し込みます。向きに注意しましょう。PICKitの三角マークがある側が1番ピンです。

PICkitのピンヘッダ接続

ちょっと不安定なので、左手で押さえたままにします。次に、プログラムを書き込みます。書き込みはツールアイコンに書き込みボタンがありますので、それをクリックします。

Write button

クリックすると、書き込み処理が始まりますが、以下のダイアログが表示された場合は「PICkit3」または「PICkit4」の「SN: xxxxxx」というところを選択してOKボタンをクリックします。これは、MPLABX IDEがPICkitを見つけられなかった場合に表示されます。表示された場合、PICkitがどれか教えてあげます。

PICkit not found

次に、以下のようなダイアログが表示されると思います。

Voltage confirmation

これは何を言っているかというと、「あなた、知ってると思うけど、このPICマイコンには3.3Vモデルと5Vモデルがありますよね。あなた、書き込みの電圧を5Vの設定にしてるみたいだけど、もし書き込むPICマイコンが3.3Vモデルの場合、このまま書き込んだらぶっ壊れるけどいいよね」(意訳)というような内容です。5Vで問題ないのでOKボタンをクリックしてこのまま進めます。

書き込みが終わっても特にダイアログが出るわけでもないので、右下のタスク領域にログが表示されますので、そこを確認してみます。

Programmed  mini

このように最後の行に “Programming/Verify complete”と表示されれば、無事書き込み完了です。

ところで、PICKitを差しっぱなしにしていると、LEDが点滅を始めたと思います。これはプログラム書き込み後、PICマイコンが動作を始めたためです。ただ、電池をつないで動作確認しますので、ここでいったんPICKitを外します。

❺ 動作確認

では、電池をつないで動作させてみます。以下のように電池ボックスから出ている電線をブレッドボードに接続して、スイッチを入れます。

Base circuit confirmation

うまく1秒に1回ピカッ、ピカッ、と光りましたか?

もし光らなかったら、回路とプログラムをもう一度確認してみてください。動かない原因がどうしてもわからなかったら、ご質問を受け付けますので、このサイトの「Contact」ページからお問い合わせいただければと思います。

それでは次回からプログラムを詳しく説明していきます。

更新履歴

日付内容
2016.8.24新規投稿
2018.11.23PICkit4情報追加
2018.11.24インクルードファイルをxc.hのみに変更
main関数型をvoid main(void)に変更
2025.4.1記事更新途中(プログラムファイル作成までMPLAB X IDE v6.25で更新)
通知の設定
通知タイミング
guest
54 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
はると
はると
6 月 前

いつもお世話になっております。picの勉強を始めたばかりの初心者です。
17回のところでうまくプログラムの書き込みができず、下記のエラー文が表示されます。
何回か試してみても同じエラーが出て解決方法がわかりません。

Operation failed because the measured Vpp voltage failed to reach the requested Vpp voltage value within the timeout period.

はると
はると
返信  管理者
5 月 前

返信ありがとうございます。上記を試してみましたが、同じエラーが繰り返されるだけでした。

syou2
syou2
2 年 前

マイコンを勉強したくこのサイトで始めた初心者です。
最初の#include <xc.h>で添付の表示が出てマイコン設定のところでエラーが派生します。
PCはMacを使用しています。
xc.hは次のPathにあるのですがどこかにこのPathを設定する必要があるのでしょうか。
/Applications/microchip/xc8/v2.41/pic/include/xc.h
よろしくお願いします。

syou2
syou2
返信  管理者
1 年 前

回答ありがとう御座います。includeのpathがうまく出来てないようでしたのでxc8のコンパイラをもう一度入れ直しました。Compiler Settigsの時にAdd xc8 to the PATH environment variableにチェックを入れてみました。その後にbuiludeしたらエラーが出なくなりました。教えてくださったEmbeddedのToolchainにxc8(v2.41)が入っていることも確認しました。ありがとう御座います。

syou2
syou2
返信  管理者
1 年 前

前に解決したと思いメッセージを送ったのですが、まだ解決してないようです。ビルドした後の画面を添付します。前回教えていただいたXC8のPathは間違ってないようでした。

aKI
aKI
2 年 前

PICマイコン初心者です。このサイトで一から勉強させていただいています。大変詳細で分かりやすく感謝しております。
実は応用編まですすめ実践編に入る前に、自分でプログラムを作ろうと元の点灯、消灯を再開させようとしましたら、ビルド後に”Programming/Verify complete”の表示はするのですが書き換えられていない動きをしています。(回路は第17回のシンプルな接続に戻しています。)どう確認を進めればよいのか助言をいただけると助かります。ツールはPICKIT4,
MPLAB X IDE 6.00を使っています。宜しくお願いします。

aKI
aKI
返信  aKI
2 年 前

自己解決しました。お恥ずかしいことにSet Main projectで書き込む対象を変えていませんでした。プログラムを作る画面を開いていればそれが書き込められると勘違いっしていました。outputをよく見れば、対象のプログラムが表示されていました。

dmr
dmr
3 年 前

プログラムをコピペしてビルドしてみたのですが、これはエラーがあるということですか?

make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash1.X’
make -f nbproject/Makefile-default.mk dist/default/production/LED_Flash1.X.production.hex
make[2]: Entering directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash1.X’
“C:\Program Files\Microchip\xc8\v2.36\bin\xc8-cc.exe” -mcpu=12F1822 -c  -mdfp=”C:/Users/��/xc8″ -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=default -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,–data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall -mdefault-config-bits  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto   -o build/default/production/newmain.p1 newmain.c 
::: error: (1180) directory “C:/Users/��/xc8” does not exist
make[2]: *** [build/default/production/newmain.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
(908) exit status = 1
nbproject/Makefile-default.mk:107: recipe for target ‘build/default/production/newmain.p1’ failed
make[2]: Leaving directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash1.X’
nbproject/Makefile-default.mk:91: recipe for target ‘.build-conf’ failed
make[1]: Leaving directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash1.X’
nbproject/Makefile-impl.mk:39: recipe for target ‘.build-impl’ failed

BUILD FAILED (exit value 2, total time: 617ms)

dmr
dmr
返信  管理者
3 年 前

文字化けはしていないように思います。MPLABのバージョンを変更してみました。もう一度コピペからビルドしてみました。
/*
 * File:  main.c
 */
#include<stdio.h>
#include<stdlib.h>
#include <xc.h>

// PIC12F1822 Configuration Bit Settings
// CONFIG1
#pragma config FOSC = INTOSC  // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF    // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF   // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = OFF   // MCLR Pin Function Select (MCLR/VPP pin function is digital input)
#pragma config CP = OFF     // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config CPD = OFF    // Data Memory Code Protection (Data memory code protection is disabled)
#pragma config BOREN = ON    // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = OFF  // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config IESO = OFF    // Internal/External Switchover (Internal/External Switchover mode is disabled)
#pragma config FCMEN = OFF   // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled)
// CONFIG2
#pragma config WRT = OFF    // Flash Memory Self-Write Protection (Write protection off)
#pragma config PLLEN = OFF   // PLL Enable (4x PLL disabled)
#pragma config STVREN = OFF   // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset)
#pragma config BORV = LO    // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LVP = OFF    // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)

// クロック周波数指定
// __delay_ms()関数が使用する
#define _XTAL_FREQ 1000000

void main(void) {

  // PICマイコン設定
  OSCCON = 0b01011010; // 内部クロック周波数を1MHzに設定
  ANSELA = 0b00000000; // すべてのピンをデジタルモードに設定
  TRISA = 0b00001000; // すべてのピンを出力モードに設定(ただしRA3ピンは常に入力モード)

  // LEDを消灯する
  LATA5 = 0;
   
  // LED点滅処理(永久に繰り返す)
  while(1){
    // LEDを950ms消灯する
    LATA5 = 0;
    __delay_ms(950);       
    // LEDを50ms点灯する
    LATA5 = 1;
    __delay_ms(50);
  }

  // 以下の命令は実行されない
  return;

}

make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash.X’
make -f nbproject/Makefile-default.mk dist/default/production/LED_Flash.X.production.hex
make[2]: Entering directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash.X’
“C:\Program Files\Microchip\xc8\v2.36\bin\xc8-cc.exe” -mcpu=12F1822 -c -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=default -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,–data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto   -o build/default/production/main.p1 main.c 
terminate called after throwing an instance of ‘std::invalid_argument’
 what(): No such file or directory
error: clang frontend command failed with exit code 3 (use -v to see invocation)
(908) exit status = 1
nbproject/Makefile-default.mk:106: recipe for target ‘build/default/production/main.p1’ failed
make[2]: Leaving directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash.X’
nbproject/Makefile-default.mk:90: recipe for target ‘.build-conf’ failed
make[1]: Leaving directory ‘C:/Users/��F/Documents/MPLABX/LED_Flash.X’
nbproject/Makefile-impl.mk:39: recipe for target ‘.build-impl’ failed
make[2]: *** [build/default/production/main.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 6s)

dmr
dmr
返信  管理者
3 年 前

c90に変更でエラーが出なくなりました。有難うございました。前に進めます。^^
このc99,90は何ですか?

sho
sho
4 年 前

こちらで,PICを一から勉強させていただいています.
誤植がありました.

次の画面で、プログラムの書き込みツールを指定します。お持ちのPICkitに合わせて「PICkit3」または「PICkit4」を選択します。以下は「PICkit4」を選択した状態です。線足したらNext>ボタンをクリックします。

「線足したら」→「選択したら」

ですね.だれでもわかるでしょうけど,揚げ足を取るわけではありませんが,あまりにも完璧な講座なので少しのミスもないほうがよいと思いました.

今後ともよろしくお願いいたします.

管理者
管理者
返信  sho
4 年 前

ご指摘どうもありがとうございました!
さっそく修正いたしました。

細かいことでもご指摘いただけると大変助かります。(特に誤植は本人はなかなか気づかないことが多いので…)
お手数でなければ、何か見つけましたらご指摘いただけると幸いです。

ところで、このシリーズ記事ですが、MPLABX IDEの最新バージョンと違うところも出てきていますので、今後順次最新情報に更新していく予定です。

sho
sho
返信  管理者
4 年 前

すばやい対応でビックリしています.
ありがとうございました.
今後ともよろしくお願いいたします.

minoru
minoru
4 年 前

初めまして。ここまでフォローして来たのですが、書き込みのところで以下のエラーが出て進めなくなりました。どうすればいいでしょうか?
Connecting to programmer…
The programmer could not be started: Could not connect to tool hardware: PICkit3PlatformTool, com.microchip.mplab.mdbcore.PICKit3Tool.PICkit3DbgToolManager
すみませんがお教えください。よろしくお願いします。

minoru
minoru
返信  minoru
4 年 前

binaryさんへのお答えに従って何度かトライして、後電圧を4.5にして動きました。ご面倒をおかけしました。

キャップ
キャップ
7 年 前

基礎編の第17回までの情報で、PIC12F1822への書き込みと動作確認がスムーズに出来ました。
ここまで丁寧に解説されているサイトは他には見たことがありません。
貴重な情報を提供していただいたclaynetsさんに感謝致します。

ところで、電子回路図ですがどのようなソフトウェアで書かれていますでしょうか?
今後、自分も書く機会があると思い質問させていただきました。
いずれ、claynetsさんのように、pngファイルなどでインターネットに公開することを考えています。

管理者
管理者
返信  キャップ
7 年 前

キャップさま、
コメントどうもありがとうございます! 動作確認までできてよかったです。実際に動くと嬉しいですよね。

ところで、ご質問の電子回路図ですが、macOS用の「Affinity Design」というアプリで描いています。このアプリは、Illustratorとほぼ同じ機能を持っていて、macOSのイラレ系アプリとして人気があります。結局、直線や円などを組み合わせて部品の回路記号を作成して、それをグループ化、部品として使っています。

電子回路図を描くアプリは、フリーソフトの「KiCad」や「LTSpice」、Autodesk社の「EAGLE」などがあります。最初はこれらのアプリで回路図を作成してみたのですが、いずれのソフトも図としての品質はよくなかったので、結局、自分でゼロから描くことにしました。

きれいな電子回路図を描きたいのであれば、イラレ系のアプリでゼロから作成するのが一番きれいだと思います。

binary
binary
6 年 前

picマイコン初心者です。プログラミングをしていてこの分野を勉強したいと思い第1回から記事を見させて頂いています。とてもわかりやすく、ここまで躓く事なく来れましたが、書き込みの段階で以下のようなエラーが出て、対応できませんでした。
エラーの解決方法をもしよろしければ教えて下さい。
[エラー]
The programmer could not be started: Could not connect to tool hardware: PICkit3PlatformTool, com.microchip.mplab.mdbcore.PICKit3Tool.PICkit3DbgToolManager

管理者
管理者
返信  binary
6 年 前

binaryさま、
コメントどうもありがとうございました。

再現確認しようとしているのですが、なかなかこちらで再現できておりません。そこで、似たような症状がないかMicrochipのフォーラムなどで確認したところ、PICkit3のモードが異なっている可能性があるかもしれません。

PICkit3本体に黒いボタンがあると思います。このボタンを以下のように操作してご確認いただけますでしょうか。

1) PICKit3をPCから外す
2) PICkit3の黒いボタンを押したまま、USBケーブルをPCに接続する
3) USBケーブルを接続したら、黒いボタンをはなす

こちらでも引き続き再現できないか確認してみます。

binary
binary
返信  管理者
6 年 前

ご返事ありがとうございます。
pickit3のモード回答どおりに変換し、更に4.75vに変換すると記事通りに動作しました。解決方法を模索していただき本当にありがとうございます。

管理者
管理者
返信  binary
6 年 前

結果をご連絡いただきどうもありがとうございます。
黒いボタンを押すと、PICKit3のモードが初期状態に戻るようなので、何か違うモードになっていたのかもしれませんね。

あと、書き込み時の電圧は4.75Vということは、USBポートの容量の問題なのかもしれません。4.75Vで問題なければ、このあとの記事でも4.75Vで書き込みいただければと思います。

また何かわからないことがありましたらコメントいただければと思います。

junjun
junjun
6 年 前

大変分かりやすい説明に感謝しております。

マイコン・C言語ともに全くの初心者です。
基礎編を最後まで興味深く拝見して、実際に製作し、
自己流で プログラムを アレンジするなどして
楽しんでおります。

どうも スッキリしない疑問があります。

第17回で LED を点滅させる プログラム。
LATA5 = 0;
__delay_ms(950);
LATA5 = 1;
__delay_ms(50);
を While (1) { } に入れることで永久に点滅を繰り返す。

ここまでは理解できるのですが、
このWhile (1) { } を取り去った以下の コード。
LATA5 = 0;
__delay_ms(950);
LATA5 = 1;
__delay_ms(50);

この コードでは一回の「点灯」のみであり、
「 点滅」はしないように思われるのですが、
実際に書き込んでみると、LED が点滅を継続します。

基本的な知識不足による疑問かと思われますが、
よろしく お願い致します。

管理者
管理者
返信  junjun
6 年 前

junjunさま、
ご質問どうもありがとうございます。

LEDを点滅させるプログラムからwhile(1){}を削除して、main関数の中には1回だけ点灯させるコードが書かれているはずなのに、実際に実行するとwhile文があるかのように正常に動作する、ということですよね。

非常に鋭い質問です!

このご質問の本質は、
main()
{

プログラムコード

}

というプログラムを書いたとき、プログラムコードは1回実行されるのはいいとしても、処理が最後の「}」まできたらPICマイコンはどうなるのか、という点になります。

実は、main()関数の処理が終わって最後の「}」までくると、最初の「{」から処理を開始するんです。これは今回のプログラムに限らず、PICマイコンプログラム全般に当てははまります。

では、繰り返し実行するコードであれば、main()関数の中に1回分の処理を書いておくだけでいいのではないか? という疑問が生まれます。

main関数の中に1回分のコードを書いてそれを繰り返し実行させると問題が出てきます。というのは、main関数の最初の方にはPICマイコンのピンの属性設定をしたり、周波数設定をしています。main関数を何度も実行するようにしてしまうと、これらのコードが毎回実行されることになってしまいます。これらのコードは処理自体は時間がかからないにしても、やはり処理時間はかかります。

そのため、main関数に点滅のコードを1回だけ書くようにしてmain関数を繰り返し実行すると、、、

PICマイコン初期設定
LEDを950ms消灯
LEDを50ms点灯
PICマイコン初期設定
LEDを950ms消灯
LEDを50ms点灯
PICマイコン初期設定
LEDを950ms消灯
LEDを50ms点灯
:
:
というように処理を繰り返してしまいますので、時間計測としては良くない処理になってしまいます。

逆に電源投入後に1回だけ処理させたい場合は、

main()
{
 1回分の処理;

 while(1){
 }
}

というように最後に何も処理をしないwhile文を追加しないと、何度も実行してしまうことになります。

このようにいろいろと試されるのは非常にいいことだと思いますので、いろいろとプログラムを変更してご自分の理解を深めていただければと思います。

今後も何かわからないことなどございましたらご質問ください。

junjun
junjun
返信  管理者
6 年 前

ご丁寧な解説 どうもありがとうございます。
胸の つかえが取れた気がします。

応用編の プチチャレンジ課題で つまずいて、
一旦 ここに戻り、思い切って質問させていただきました。

初級向けC言語の解説本では、
あまり触れられていない「無限ループ」や「空のループ」の
使用法を再認識することができました。

まだまだ色々疑問は残りますが、
深追いして迷路に迷い込むことなく、
とりあえず次に進んで、
実践編も コンプリートしたいと夢を膨らませております。
必要な パーツも既に手元に届いております (^v^)♪

これからも どうぞ宜しくお願い致します。

管理者
管理者
返信  junjun
6 年 前

junjunさま、
早速のご確認どうもありがとうございました。

回答後に申し訳ございませんが一点捕捉させてください。

main関数自体を何度も繰り返すのはPICマイコンがそのような仕様になっているためで、例えばPC(Mac/Windows/Linux)でCプログラムを作成すると、main関数が終わるとプログラム処理そのものが終わりになりますので、その点をご留意いただければと思います。

実践編はまだ記事が途上ですが、早めに全部書く予定です。実践編もよろしくお願いします!

わからないことがありましたら、お気軽にご質問ください。

junjun
junjun
6 年 前

毎回 詳細な解説 ありがとうございます。

複数の LED を試してみたくなり、
RA0・RA1 ピンの使用について検討してみました。

そこで疑問が生じました。
TRISA により全ての ピン( RA3ピンを除く) が
出力モードとして設定されています。

PICkit3 から マイコンへ書き込む際には、
6・7番ピンを ICSPCLK・ICSPDATとして使用する為に、
TRISA の設定が オーバーライドされるという イメージで理解すれば

よろしいのでしょうか?

乱暴な言い方をすると、
「 出力ピンとして設定した ピンを用いて入力する 」とも言えそうな
気がしますが …… 。

また 6・7番ピンを ICSPCLK・ICSPDATとして使用する際には、
周辺回路と共用しない方が良いのでしょうか?

お忙しいところ、申し訳ありませんが、宜しくお願い致します。

管理者
管理者
返信  junjun
6 年 前

junjunさま、
ご質問どうもありがとうございます。

PICKitからPICマイコンに書き込む際、PICマイコンは通常のプログラム実行モードとは異なるプログラム書き込みモードになり、ICSPCLKとICSPDATピンはプログラム専用ピンになります。

TRISAの設定はプログラムが開始してから(main関数が実行されてから)設定されますので、TRISAがオーバーライドされる、ということにはなりません。プログラム書き込みモードはそもそもプログラムは動作していませんので、main関数での設定は実行されていません。

また、ICSPCLKとICSPDATピンですが、この新しいシリーズでは説明を省略しましたが、古いシリーズには説明しておりますのでご参照いただければと思います。

https://tool-lab.com/make/macpic-startup-28/

junjun
junjun
返信  管理者
6 年 前

早速の ご回答どうもありがとうございます。

「 ピンの有効活用方法 」を拝見して、色々な疑問が
解消できました。
実践編で登場する 16F18857 を使用すれば、
回路設計に大幅な余裕ができるのは分かっているのですが、
12F1822 にも愛着が沸いてきました。

これからも宜しくお願い致します。

けんけん
けんけん
7 年 前

こんにちは
第一回から記事を見させていただいております。pic初心者の者です。

書き込みボタンを押しましたが、

PICkit 3 is trying to supply 5.000000 volts from the USB port, but the target VDD is measured to be 4.750000 volts. This could be due to the USB port power capabilities or the target circuitry affecting the measured VDD.

The target circuit may require more power than the debug tool can provide. An external power supply might be necessary.
Connection Failed.

と表示されました。

ノートパソコンでやっていますが、電圧が不足しているということでよろしいでしょうか。

ご指導いただけますと幸いです。

よろしくお願いします。

管理者
管理者
返信  けんけん
7 年 前

けんけんさま、
ご質問どうもありがとうございます。

このメッセージは、原因が不明なことが多いので、大変お手数ですがいくつか確認していただければと思います。このメッセージは、本当に電圧が取れないこともあるのですが、他の原因の可能性もあるので、何通りかの手順をご確認いただければと思います。

A) PCのUSBポートに他のUSB機器は接続していますでしょうか。その場合、PCに接続する機器はPICKit3のみにしてどうなるかご確認お願いできますでしょうか。

B) PCのUSBポートにPICKit3のみ接続している場合、PICKit3を接続するタイミングを、PC起動前、PC起動後のパターンでご確認いただけますでしょうか。

C) PCの再起動などでも同じメッセージが出る場合、以下の手順でどうなるかご確認お願いできますでしょうか。

1) PCを起動、PICKit3をUSBケーブルでPCに接続
2) MPLABX IDEを立ち上げる
3) プロジェクト名を右クリックして「Properties」を選択
4) Categoriesの「Conf:[default]」を選択 (おそらく選択済みのはず)
5) 右側の領域のHardware Tool → PICKit3に「SN:xxxxxxxx」(xはPICKit3のシリアルナンバー)が表示されているので、それを選択
6) OKボタンをクリックしてPropertiesダイアログを閉じる
7) ビルド、書き込み

A〜Cの項目をご確認いただければと思います。

ところで、こちらのシリーズはPIC12F683を使用したものですが、このあと、PIC12F1822を使用してさらに色々な機能を説明しています。PIC12F683をPIC12F1822に置き換えれば動作させることができますので、以下のシリーズもご参照いただければと思います。

「PICマイコン電子工作入門 〜基礎編」
http://tool-lab.com/make-course/picbasic/

「PICマイコン電子工作入門 〜応用編」
http://tool-lab.com/make-course/picapp/

けんけん
けんけん
返信  管理者
7 年 前

ご返信感謝します!!
そのエラーについてですが、usbが4.75ボルトしかなかったのでプロパティ→pickit3→power→voltage levelを4.75ボルトにしたらうまくいきました!!

様々な解決方法をご提案してくださったこと誠に感謝しております。
ありがとうございました!!

管理者
管理者
返信  けんけん
7 年 前

けんけんさま、
的確な回答ができずに申し訳ございませんでした。4.75Vのエラーはよく見られるのですが、実際に電圧が低いというケースは少ないので、的外れな回答になってしまい申し訳ございませんでした。

今回は実際に4.75Vだったということで、私の方でも、このようなケースがある、ということで勉強になりました。ご質問いただきどうもありがとうございました!

pic biginer_JP
pic biginer_JP
7 年 前

こんにちは 最近picマイコンをはじめた者です。
pic16f628aを使って貴サイトと同じことをしようとしています。
xc16 compilerをダウンロードしたのですがMPLAB X IDEのselect compilerに反映されずコンパイルすることが出来ないです。
何かやるべき操作を忘れているのでしょうか?

管理者
管理者
返信  pic biginer_JP
7 年 前

こんにちは。ご質問どうもありがとうございます。
結論としては、PIC16F628Aは8-bitですのでXC8が必要になります。XC8をダウンロード、インストールするとSelect Compilerの欄に出てくると思います。

かなりややこしいのですが、PICマイコンのアーキテクチャは以下のようになっています。

[8-bitマイコン]
 PIC10, 12, 16, 18

[16-bitマイコン]
 PIC24, dsPIC30, dsPIC33

[32-bitマイコン]
 PIC32

またコンパイラは、XC8が8-bit用、XC16が16-bit用、XC32が32-bit用になります。

自分も最初の頃は同じ勘違いをしました。ただ、いちいち調べるのは面倒なので、XC8, 16, 32のコンパイラは全てインストールするようにしています。全てインストールされていると、必要なコンパイラが「Select Compiler」に表示されるようになります。(そもそも全部入りの1つのコンパイラを作ればいいのに、という気もしますが…)

それにしても、PICの型番の数字は紛らわしいですよね。特にPIC32は32-bitなのに、前後の数字のものは16-bitというのはわざと難しくしてるようにな気もします。スタバで注文するときの難しさに似ているような気もしますが、逆にパパッとわかるようになると、スタバでそうであるようにドヤ顔できるのかもしれません。

pic biginer_JP
pic biginer_JP
返信  管理者
7 年 前

素早い丁寧な返信ありがとうございます。
なるほど、、、一応データシートは目を通したのですがpic16fの数字に惑わされていました。
アドバイス通り全てのコンパイラをインストールしてみます(笑)

管理者
管理者
返信  pic biginer_JP
7 年 前

はい、また何かわからないことありましたらご質問いただければと思います。

reud
reud
7 年 前

初めまして、電子工作を始めてみたいと思い様々なサイトを探してみましたが、このサイトが一番わかりやすく助かっています。 いつもわかりやすい記事を作っていただきありがとうございます
今回ビルドが失敗するので、質問させていただきたいと思います
MPLAB文のout putがこうなり、成功しません。
//ここから
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory ‘C:/Users/reud/MPLABXProjects/tf.X’
make -f nbproject/Makefile-default.mk dist/default/production/tf.X.production.hex
make[2]: Entering directory ‘C:/Users/reud/MPLABXProjects/tf.X’
“C:Program Files (x86)Microchipxc8v1.42binxc8.exe” –pass1 –chip=12F1822 -Q -G –double=24 –float=24 –opt=+asm,+asmfile,-speed,+space,-debug,-local –addrqual=ignore –mode=free -P -N255 –warn=-3 –asmlist -DXPRJ_default=default –summary=default,-psect,-class,+mem,-hex,-file –output=default,-inhx032 –runtime=default,+clear,+init,-keep,-no_startup,-osccal,-resetbits,-download,-stackcall,+clib –output=-mcof,+elf:multilocs –stack=compiled:auto:auto “–errformat=%f:%l: error: (%n) %s” “–warnformat=%f:%l: warning: (%n) %s” “–msgformat=%f:%l: advisory: (%n) %s” -obuild/default/production/newmain.p1 newmain.c
:: error: (141) can’t open cpp.exe command file “C:UsersreudAppDataLocalTemp;C:Usersreud.atompackagescpp_s8j0.cmd”: Invalid argument
(908) exit status = 1
nbproject/Makefile-default.mk:106: recipe for target ‘build/default/production/newmain.p1’ failed
make[2]: *** [build/default/production/newmain.p1] Error 1
make[1]: *** [.build-conf] Error 2
make[2]: Leaving directory ‘C:/Users/reud/MPLABXProjects/tf.X’
make: *** [.build-impl] Error 2
nbproject/Makefile-default.mk:90: recipe for target ‘.build-conf’ failed
make[1]: Leaving directory ‘C:/Users/reud/MPLABXProjects/tf.X’
nbproject/Makefile-impl.mk:39: recipe for target ‘.build-impl’ failed

BUILD FAILED (exit value 2, total time: 970ms)
//ここまで
一応言われた通りに動かしています。
自分で解決しようと色々調べて、error(141)の部分でなぜかatomファイルのパスが見えたのでこれが悪い事してると思い.atomファイルを削除しましたが何も変わりませんでした。
よろしければ、解決方法とcpp.exeの解説、エラー内容をご教授していただきたいです。宜しくお願いいたします
//追記です
最初はLED_flashでプロジェクトを作成しましたが今と同じくエラーが出たため、tfというプロジェクト名にし、再度設定を確認を行いました

Hisatomi Kenji
Hisatomi Kenji
8 年 前

こんにちは。いつもありがとうございます。
サンプルプログラムで以下のコメントとプログラムについて、実際に動作させてみるとLEDが点灯することを確認しました。
// LEDを消灯する
LATA5 = 1;
引き続き読ませていただいています。

管理者
管理者
返信  Hisatomi Kenji
8 年 前

コメントどうもありがとうございます。
はい、何か不明な点がありましたらコメントいただければと思います。

Hayashi Takayuki
Hayashi Takayuki
返信  管理者
8 年 前

こんにちは。このサイトで勉強しているマイコン初心者です。
プログラム内の39、40行目の
// LEDを消灯する
LATA5 = 1;
これは矛盾していませんか?
それとも自分の勘違いでしょうか…

管理者
管理者
返信  Hayashi Takayuki
8 年 前

はじめまして。

ご指摘どうもありがとうございました!
すみません、コメントとプログラムが一致していませんでした。初期設定としては消灯する、ということにしますので、

// LEDを消灯する
LATA5 = 0;

に変更しました。

コメントどうもありがとうございました!

目次