だいぶ前ですが、離床センサーの簡易チェッカーを作成しました。→こちら
いぜんのものは結構場所とりで大きくて邪魔です。
// PIC12C509A Configuration Bit Settings // ‘C’ source line config statements #include <xc.h> // CONFIG #pragma config OSC = IntRC 内部発振をつかいますよー #pragma config WDT = OFF ウォッチドッグタイマは使いませんよー #pragma config CP = OFF これも使いませんよー #pragma config MCLRE = OFF これも使いませんよー #define _XTAL_FREQ 4000000 //4Mhz使用 #define sp GPIObits.GP0 //GP0をスピーカーへ出力 #define led1 GPIObits.GP1 //GP1をled1に #define led2 GPIObits.GP2//GP2をled2に #define inin GPIObits.GP3 //GP3を入力に設定 int i; void main(void) { //オプションの設定 OPTION =0b10000000; //wake-up on pin offに 7bit目で設定 //weak pull-upをonに 6bit目で設定 //tocs off 3bit目をi/oとして使う 5bit目 //出力、入力の設定 TRIS = 0b001000; //GP3を入力 あとは出力 //とりあえずクリア GPIO = 0; //ここからメインプログラムスタートです。 while(1){ sp = 0;//まずはクリア ボタンが押されていないときはLEDも光らない様に led1 = 0; led2 = 0; if(inin == 0){ for(i=0;i<=63;i++) { //周期1msec 1KHzのパルスを発生させ、for文で8Hzごとに1KHzのパルスが発生 //入力がある間繰り返す sp = 1; led1 = 1; led2 = 0; __delay_us(500); sp = 0; __delay_us(500); } led1 = 0; led2 = 1; __delay_ms(63); } } return; } |