سلام عليكم
عندي سفن سكمنت تعمل بطريقه multiplexing تظهر الارقام بشكل طبيعي ولكن توجد مشكله في هذا كود وخصوصا في معادله حساب حراره NTC
كود:
void caculated_temperature()
{
temp=ADC_Read(12);
temp=temp*5000/1023;
zz=(1/ (log( ( temp*(R1+R2)-(5*R2) )/((5000-temp)*R25))/B +3.354e-3) )-273.15; // equation fot NTC
temp2=zz;
if(zz>=100)temp2=99; // max value beacuse using 7seg two segment only
if(zz<=1)temp2=0;
show_7seg(temp2,25);
}
كود بلون الاحمر معادله حساب حراره
وفي كود
كود:
show_7seg(temp2,25);
اذا اقلل 25 الى 5 يحدث استقرار للسفن سكمنت حيث يمثل رقم زمن
كود سفن سكمنت
كود:
void show_7seg(char number,char time)
{
for(x=0;x<time;x++)
{
seg_en1=disenable; seg_en2=disenable;
seg_en3=disenable; seg_en4=enable;
segment=segment1[number/100];
delay_ms(1);
segment=0;// OFF 7 segment
seg_en4=disenable; seg_en3=enable;
seg_en2=disenable; seg_en1=disenable;
segment=segment1[(number%100)/10];
delay_ms(1);
segment=0;// OFF 7 segment
seg_en4=disenable; seg_en3=disenable;
seg_en2=enable; seg_en1=disenable;
segment=segment1[number%100%10];
delay_ms(1);
segment=0;// OFF 7 segment
//**** show C in 7 seg ***//
seg_en1=enable; seg_en2=disenable;
seg_en3=disenable; seg_en4=disenable;
segment=segment1[10];
delay_ms(1);
segment=0;// OFF 7 segment
}
}
ارجوا تحديد سبب مشكله وهل هناك بطئ في تنفيذ معادله لان مشكله الارتعاش ناتجه من هذه معادله حساب حراره
علما على برنامج بروتيس تعمل بشكل طبيعي
تردد كرستاله خارجيه=8 ميكاهيرتز
نوع البك 18f45k22
*****************