コンフィグのお勉強が済んだところで、コー
ドを書こうと思います。まずは先輩ブログを
探しますが、意外とPIC12F1822関連の記
述が少ない。老舗エアバリアブルさんのとこ
ろにピカピカコードがあったので、参考に。
パクリだとお勉強にならないので、コードを
書き下ろします。
/*****************************************************
PIC12F1822 LED TESTING by nobcha
Reffered below WEB, thanks airvariable.
http://www.ne.jp/asahi/air/variable/picmel/applications/hello_world/index.html
**************** ******************** **************** */
#include
#define LED_ON LA2=1; #define LED_OFF LA2=0;
__CONFIG( FOSC_INTOSC & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF
& CPD_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF );
__CONFIG( WRT_OFF & PLLEN_OFF & STVREN_ON & LVP_OFF );
void main(void){ // REGISTER SET UP
OSCCON = 0b01101010; // 4MHz int clk, PLL dis,
GIE = 0; // Int disable
ANSELA = 0; // ALL digital
TRISA = 0b00001000; // LA3 MCLR INPUT
LATA = 0b00001000; // DATA latch reset LA3 is none
// REPEATED FOREVER
while(1){ LED_ON // LA2 on
__delay_ms(100) ; // 100ms waiting
LED_OFF // LA2 off
__delay_ms(100) ; // 100ms waiting } }
今までTRAといってたのが、使い方でLATAと
いったり、PORTAと言ったりするみたいです。
というか、出力用のLATと言い、入力ポート信号
読み込み時に一時ラッチするレジスタをPORTと
いうようです。
これが何でというと、ビット単位のPORTn命令
におけるリードモディファイライト対策になるらし
い。
CONFIGのパラメータは”何とか_ON”というような
ノーテーションになり、正規化方向か?