「PICマイコン」で学ぶC言語

構造体 / それに意味のないとき

pp.184-190 このコードは単に構造体を使ってみただけであって、構造体を使う必要はない。 #include <xc.h> #pragma config FOSC = INTOSC #pragma config WDTE = OFF #pragma config MCLRE = OFF #define _XTAL_FREQ 4000000 int main(){ //OSCCON = 0x68; // 4 MH</xc.h>…

ポインタ変数の応用例 / 2重ループを1重化する

pp.154-157 2次元排列に格納された値を順番にポートBに出力する。 #include <xc.h> #pragma config FOSC = INTOSC #pragma config WDTE = OFF #pragma config MCLRE = OFF #define _XTAL_FREQ 4000000 int main(){ OSCCON = 0x68; // 4 MHZ TRISA = 0x0f; // ポー</xc.h>…

ディジタル入力を試す / タクトスイッチをオルタネート動作させる

pp.111-121 下のコードはisOn = !isOn;でフラグを反転したが、テキストは、isOn++; isOn%=2;で1、0を繰り返すという方法を使っている。 #include <xc.h> #pragma config FOSC = INTOSC #pragma config WDTE = OFF #pragma config MCLRE = OFF #define _XTAL_FREQ </xc.h>…

ディジタル入力を試す / 問題2-6-6

p.106 問題2-6-6の別解 #include <xc.h> #pragma config FOSC = INTOSC #pragma config WDTE = OFF #pragma config MCLRE = OFF #define _XTAL_FREQ 4000000 int main(){ OSCCON = 0x68; // 4 MHZ TRISA = 0x0f; // ポートAの下位4ビットのIOをINにする。0でOUT、1</xc.h>…

ディジタル入力を試す

pp.102-106 4つあるスイッチにそれぞれ割り当てたLEDを点ける。前回までは__CONFIG()でコンフィギュレーションビットを設定していたが、それだとエラーが出るので#pragma configに変えた。ただしどちらでもコンパイルはとおる。 #include <xc.h> #pragma config FO</xc.h>…

さまざまな点灯パターンを試す

pp.84-99 #include <xc.h> #define _XTAL_FREQ 4000000 // クロックを定義する(ディレイ函数用)。4 MHz。 __CONFIG( FOSC_INTOSC // 内蔵オシレーターを使う。 & MCLRE_OFF // MCLRを無効化する。だからRA5が使える。 & WDTE_OFF // ウォッチドッグタイマーを無効</xc.h>…

学習ボードの動作確認

pp.46-73 Lチカで動作を確認する。IOの向きを設定するロジックがTRISxとAVRのDDRxとで逆であった。以後すべて、IDEはMPLAB Xを、コンパイラはXC8を 、書き込み装置はPICkit3を使い、MCCは一切使わない。 #include <xc.h> #define _XTAL_FREQ 4000000 // クロックを</xc.h>…

学習ボードを作る

p.42 PIC16F1827のポートAでディジタル入力を、ポートBでディジタル出力を試すだけのシンプルきわまりないマイコンボードである。基板は、fritzingでガーバーデータを作り、11月4日(月曜日)早朝にFusionへ発注、11月9日(土曜日)正午ごろに受領した。 fritzin…