//********************************************************************** /* 【簡易フラッシャー】 */ //********************************************************************** #define BYTE unsigned short #define WORD unsigned int #define DWORD unsigned long // #define FLASH GPIO.B5 #define ON 1 #define OFF 0 //********************************************************************** extern void main(); extern int measurement(); extern void random_delay(); //********************************************************************** //■■■メイン関数■■■ void main() { int ad, threshold; // OSCCON = 0b01000000; CMCON0 = 0b00000111; ANSEL = 0b00000010; TRISIO = 0b00001010; FLASH = OFF; // ADC_Init(); // threshold = measurement(); // while (1) { ad = measurement(); if (threshold > ad) { FLASH = ON; Delay_ms(10); FLASH = OFF; // random_delay(); } } } //********************************************************************** //■■■照度測定関数■■■ int measurement() { long ad; int cnt; // ad = 0; for (cnt = 0; cnt < 100; cnt++) { ad += ADC_Get_Sample(1); } return (ad /= 100); } //********************************************************************** //■■■ランダムディレイ関数■■■ void random_delay() { int rd; // rd = rand() / 2979; //0.....10 rd += 10; Vdelay_ms(rd * 1000); //10sec.....20sec } //**********************************************************************