السلام عليكم ورحمه الله ..
تحيه طيبه للجميع ..
اريد تشغيل التايمر الداخلي للبك PIC12F675 زمن دورة التايمر الماراد ( 1 ميلي سانيه )
وأيضااا اريد ضبط تهيئه الأطراف .. ك التالي ..
GP0_bit و GP2_bit و GP4_bit و GP5_bit ك خرك ..
وطرف .. GP1_bit يتم تهيئته ك دخل .. وتفعيل محول الإشارة واستخدام الطرف GP1_bit للقرأة ..
والطرف GP3_bit يتم تهيئته ك دخل ....
بالطبع سيستخدم الهزاز الداخلي علي سرعه 4 ميجا ..
واليكم الكود لأضافه تفعيل التايمر وضبط التهيئه لتتوافق مع المطلوب اعلاة ..
كود:
// Design Program Engineer ABDALLA HYGAZY //
// Lighting consecutive //
// Date / 2016 / 2 /15 //
unsigned timer,ADCRED=0;
int X,M,KEY =0;
//---------------------------//
//#define time timer_variabe();
//**************************//
#define BUTTON if(GP3_bit==0){ KEY=0; while(KEY==0){if(GP3_bit==1){ KEY=1; } for( M=0; M< 10; M++ ){ GPIO = 0; GPIO=1; Time(); GPIO=4;Time(); GPIO=16; Time(); GPIO=32; Time(); GPIO = 0; } for( M=0; M< 10; M++ ){ GPIO=32; Time(); GPIO=16; Time(); GPIO=4; Time(); GPIO=1; Time();} } }
#define TEMER1 delay_ms(4000);
#define TEMER2 delay_ms(400);
#define FOOR for( M=0; M< 3; M++ )
#define FOOR1 for( M=0; M< 5; M++ )
#define PRG1 GPIO=48;TEMER1
#define PRG2 GPIO=17;
#define PRG3 GPIO=36;
#define PRG4 GPIO=33;
//----------------------------------------//
void Time() {
for(X=0;X< timer; X++)
{
delay_ms(2);
}
timer= ADC_Read(1);
}
void main() {
ADC_Init();
TRISIO = 10; // set as output
ANSEL = 2;
CMCON = 6;
GPIO = 0;
while(1) {
//********* program ( 1 ) ********//
GPIO = 0;
for( M=0; M< 4; M++ ){
GPIO = 0; Time(); GPIO=1; Time(); GPIO=4;Time(); GPIO=16; Time(); GPIO=32; Time();
GPIO = 0; Time(); GPIO=32; Time(); GPIO=16; Time(); GPIO=4; Time(); GPIO=1; Time(); BUTTON
}
for( M=0; M< 3; M++ ){ GPIO = 53; Time(); GPIO = 0; Time(); }
GPIO=0;Time(); GPIO=1;Time(); GPIO=5;Time(); GPIO=21;Time(); GPIO=53;Time();
GPIO=21;Time(); GPIO=5;Time(); GPIO=1;Time(); GPIO=0;Time();
GPIO=53;Time(); GPIO=21;Time(); GPIO=5;Time(); GPIO=1;Time(); GPIO=0;Time();
GPIO=1;Time(); GPIO=4;Time(); GPIO=16;Time(); GPIO=32;Time();
BUTTON
GPIO=33;Time(); GPIO=36;Time(); GPIO=48;Time(); GPIO=49;Time();
GPIO=52;Time(); GPIO=53;Time(); GPIO=0;Time();
GPIO=32;Time(); GPIO=16;Time(); GPIO=4;Time(); GPIO=1;Time();
GPIO=33;Time(); GPIO=17;Time(); GPIO=5;Time(); GPIO=37;Time();
GPIO=21;Time(); GPIO=53;Time(); GPIO=0;Time();
for( M=0; M< 2; M++ ){
GPIO=17;Time(); GPIO=36;Time();
}
PRG1 TEMER1 FOOR { PRG1 TEMER2 GPIO=0;TEMER2 }
PRG2 TEMER1 FOOR { PRG2 TEMER2 GPIO=0;TEMER2 }
PRG3 TEMER1 FOOR { PRG3 TEMER2 GPIO=0;TEMER2 }
PRG4 TEMER1 FOOR { PRG4 TEMER2 GPIO=0;TEMER2 }
}
}
شكرااااا للجميع