سلام عليكم
استخدمت pwm لغرض تحكم بشده ليد ولكن مشكله ليد يشتغل وينطفئ بينما اريده
كتالي
انظر كود
كود:
void keypad(char state)
{
if( state is 1){ cont=cont1=0;}
kp=0;number=0;
kp=Keypad_Key_Click();
if( kp is 1 ) number=7;
else if( kp is 2 ) number=4;
else if( kp is 3 ) number=1;
else if( kp is 5 ) number=8;
else if( kp is 6 ) number=5;
else if( kp is 7 ) number=2;
else if( kp is 8 ) number=0;
else if( kp is 9 ) number=9;
else if( kp is 10 ) number=6;
else if( kp is 11 ) number=3;
else if( kp is 12 ) kp=12;// inter (#)
else if( kp is 4 ) kp=4;// (*): delete number if writing worng number
else if( kp is 13 ) kp=13;
else if( kp is 14 ) kp=14;
else if( kp is 15 ) kp=15;
else if( kp is 16 ) kp=16;
else kp=255;
if(cont3> 150 && cont3<280)
{
[COLOR="Red"] PWM1_Set_Duty(127);[/CO
}
if(cont3>280)PWM1_Stop();
if(kp !=255)
{
cont3=0;
PWM1_Stop();
PWM1_Set_Duty(255);
PWM1_Start();
}
}
عند ضغط على اي مفتاح يضي ليد بشده كامله
كود:
if(kp !=255)
{
cont3=0;
PWM1_Stop();
PWM1_Set_Duty(255);
PWM1_Start();
}
وبعدها 10 ثواي تنخفض شده الاضاءه الى نصف
كود:
if(cont3> 150 && cont3<280)
{
PWM1_Set_Duty(127);
}
وبعدها بفتره ينطفئ ليد
كود:
if(cont3>280)PWM1_Stop();
بالنسبه لزمن يتم حسابه باستخدام تايمر 0 و cont3 يجمع بــ 1 كل 65536 مايكروثانيه
مشكله هي
1- ليد يشتغل وينطفئ
2- ظهور رساله خطا ويصبح نسبه تحميل على مايكرو ب80%
http://img02.arabsh.com/uploads/imag...414a63fa06.png
علما ان تردد مستخدم =1000هيرتز
(pwm1_init(1000