MPLAB XとXC8でPIC開発環境を整える

久しぶりにPICの開発環境を作ろうとした所、色々変わっていたのでメモ。

最初にMPLAB Xをインストール

ダウンロード

http://www.microchip.com/mplab/mplab-x-ide こちらよりダウンロードし、インストールする。

インストール

インストール方法はこちらで紹介されています。

MPLABX IDE使い方:MPLAB X インストール方法

次に、XC8コンパイラをインストール

ダウンロード

http://www.microchip.com/mplab/compilers

インストール

こちらでインストール方法が紹介されています 

MPLAB IDE使い方:XC8コンパイラのインストール方法

サンプルソース

こちらで、XC8コンパイラの使い方やサンプルソースが公開されて参考になります。 

MPLAB IDE使い方:PICの動かせ方入門一覧

日本語マニュアル

こちらに日本語マニュアルがあります  http://ww1.microchip.com/downloads/jp/DeviceDoc/50002173A_JP.pdf

MCC(MPLAB® Code Configurator)をインストール

アドインとしてインストール

MCC(MPLAB® Code Configurator)をインストールします。こちらでインストール方法が紹介されています。 アドインとしてインストールします。 hirobe.tea-nifty.com ADCやシリアルなどの内部ペリフェラルを動かすコードを自動生成してくれます。 今後はこれを使ってくださいということで過去あったペリフェラルライブラリ(plib)が無くなっています。 MCCが対応していないデバイスや手動でやりたい、過去のコードを使いたいというときは次の方法でPlibペリフェラルライブラリ)をインストールできます。

ペリフェラルライブラリをインストール

ダウンロード

ペリフェラルライブラリをダウンロードしインストールする。 Peripheral Libraries (PLIBS) http://www.microchip.com/mplab/compilers

使い方・設定

使い方はこちらで詳しく説明されている。使うためにはプロジェクトの設定変更が必要。

tool-lab.com

XC8サンプルソース

XC8でLチカを書くとこんな感じです。 PICで「Cで書いた」と書いてあってもコンパイラが違うとコンパイルできないので難しいですね。

/*
 * File:   main.c
 * Author: garyo_000
 *
 * Created on December 28, 2016, 11:56 PM
 */



// PIC16F648A Configuration Bit Settings

// 'C' source line config statements

// CONFIG
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = ON       // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
#pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
#pragma config LVP = ON         // Low-Voltage Programming Enable bit (RB4/PGM pin has PGM function, low-voltage programming enabled)
#pragma config CPD = OFF        // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
#define _XTAL_FREQ 20000000
#include <xc.h>

void main(void) {
    
    TRISB = 0;
    
    while(1){
        RB0 = 1;
        __delay_ms(1000);
        RB0=0;
        __delay_ms(1000);
    }
    
    
    return;
}

ADHDに向いた手帳管理

私は普段のスケジュールはgoogleカレンダを使用している。 それ以前は手帳などを使用していたが、書き忘れや転記漏れで良く予定の約束を守れないことがあった。基本は全て忘れるので。 最初はyahooカレンダ、そして次はgoogleカレンダを使用し、PCとスマホの両方でスケジュールを1元管理している。 スマホ側のアプリはジョルデwww.jorte.comを使用してgoogleカレンダと同期を取っている。

メモ帳には小型の情報カードを使っている。Amazon CAPTCHA どんなことでもすぐ忘れるので、メモは必須。 また、一時的なメモなので要らなくなったらそのまま捨てる。 内線番号も覚えられないので、1枚に縮小して貼って持ち歩いている。 仕事が貯まると優先順位がわからなくなるので、メモの中に十字の線を引き、横軸に優先度、縦軸に重要度でやらなくてはいけないことを書き出して チェックリストとする。作業が終わったら、チェックをする。1日か1週間単位でリストを書き直す。 小さいのでポケットに入れて持ち歩いている。 f:id:garyo:20161009141751j:plain

ノートはキャンパスノートに革のカバーを付けて使っている。使い安さで言えばキャンパスノートが一番なのだが、如何せん客先との会議などに持っていくには少し見栄えが悪いので、B5ノート用の革のカバーを付けている。

タスク管理にはシステム手帳を使用している。 システム手帳にはガントチャートwww.amazon.co.jp

バーチカルタイプのウイークリを入れている。

マンスリータイプの予定表は入れず、スマホで管理している。 今週何をやるかと何をやったかの記録と 仕事がら数か月単位のプロジェクトが多いので、googleカレンダだと管理しにくいプロジェクトのマイルストーン用のガントチャートを入れている。

あとPCに付箋紙95を入れて、予定の日が来ると点滅して知らせるようにしている。例えば順番でやってる昼礼が何日後に回ってくるとか。こんなことも1晩寝ると綺麗に忘れてしまう。

まとめると 1.スケジュール管理はスマホgoogleカレンダーで一元管理(複数の場所に書くと転記漏れがでるので) 2.常に持ち歩くメモ帳は小型情報カード(何でも良い。常に筆記具と持ち歩ければ) 3.仕事の記録・議事録などはキャンパスノート(大きくて書きやすい。バラバラにならないのでノートが一番) 4.タスクの割り当て・記録はシステム手帳

とこんな感じになる。 以前はメモ帳になんでも入れようとしたり、システム手帳に仕事の記録も入れようとしてみたりしていたけど、 それぞれの役割に特化した感じになった。

RaspberryPi2をリモートでセットアップする

katosunmemo.hatenablog.com こちらの記事の通りに行うと出来ました。 teratermSSH接続するときにTCP PORT#を22に変える必要があります。

ターミナルが繋がったら、以下でOKです。

先ほどのターミナルから

sudo apt-get update

sudo apt-get install xrdp

knygt-p.hatenablog.jp リモートディスクトップから繋ぐとキーボードが英字配列(シフト+2で@がでる)になっていたのですが、上記サイトの説明で うまくいきました。

2.日本語キーボードの配列を追加。

日本語キーボードを利用している場合は、設定ファイルを追加する必要があります。 ※ファイルは、xrdpユーザ会のサイドからダウンロード出来ます。

$ cd /etc/xrdp/

$ sudo wget http://w.vmeta.jp/temp/km-0411.ini #設定ファイルのダウンロード

$ sudo ln -s km-0411.ini km-e0010411.ini

$ sudo ln -s km-0411.ini km-e0200411.ini

$ sudo ln -s km-0411.ini km-e0210411.ini

3.サービス起動

実際のxrdpサービスを起動します。

$ sudo service xrdp restart

これで、RaspberryPi側での作業は終了です。

34401A をRS-232Cで制御する

34401A RS-232C設定

RS-232Cケーブルはクロスケーブルを使用すること

通信設定は 9600bps 8bit パリティなし ストップ1 フロー制御無し

1)インターフェース設定

1.「shift」を押す

2.「<」を押す「A:MEAS MENU」を表示

3.「>」を4回押す「E:I/O MENU」を表示

4.「↓」を1回押す「1:GPIB ADDR」を表示

5.「>」を1回押す「INTERFACE」を表示

6.「↓」を1回押す「RS-232C」または「GPIB/488」を表示

7.「>」を何回か押し「RS-232C」表示にする

8.「Auto/Man」(Enter)を押す

2)ボーレート設定

1.「shift」を押す

2.「<」を押す「A:MEAS MENU」を表示

3.「>」を4回押す「E:I/O MENU」を表示

4.「↓」を1回押す「1:GPIB ADDR」を表示

5.「>」を2回押す「BAUD RATE」を表示

6.「↓」を1回押す「xxxx BAUD」を表示

7.「>」を何回か押し「9600 BAUD」表示にする

8.「Auto/Man」(Enter)を押す

3)パリティ設定

1.「shift」を押す

2.「<」を押す「A:MEAS MENU」を表示

3.「>」を4回押す「E:I/O MENU」を表示

4.「↓」を1回押す「1:GPIB ADDR」を表示

5.「>」を3回押す「PARITY」を表示

6.「↓」を1回押す「EVEN:7BITS」「ODD:7BITS」「NONE:8BITS」のいずれかを表示

7.「>」を何回か押し「NONE:8BITS」表示にする

8.「Auto/Man」(Enter)を押す

※最初に「SYST:REM」コマンドを送信で34401Aの「Rmt」が点灯しリモートモードに入る。

「READ?」で測定値が返る

C#でファイル選択ダイアログを開く

[C#] 「ファイルを開く」ダイアログボックスを表示する こちらの記事が分かりやすかった。 ボタンとテキストボックスを追加し、 ツールボックスからOpenFileDialogをドラッグする。

private void button1_Click(object sender, EventArgs e) { DialogResult dr = openFileDialog1.ShowDialog(); if (dr == System.Windows.Forms.DialogResult.OK) { textBox1.Text = openFileDialog1.FileName; }

}