|
وعليكم السلام ورحمة الله وبركاته
اشكرك استاذي الكريم علي مجهوك الكبير راجيا من الله ان يجعله في سجل حسناتك
قلت لي اخي الكريم ان زمن العرض الكلي لا يتجاوز 20 ملي ثانية
يعني لو فرضنا ان لدي 30 شاشة للعرض الرقمي فهل احسبها
20000/30= 666 ميكرو ثانية هي زمن العرض لكل شاشة
وهو الرقم الخاص بتأخير جملة for فهل حسابي هكذا صحيحا ام كيف احسبها بصورة رياضيه صحيحة....بارك الله لك
قمت بتحميل البرنامج... TimerCalculator وان شاء الله ساحاول ان استخدمة بطريقة صحيحة وسؤالي حوله لماذا اخترت قيمة 1 مللي ثانية وهذا ليس اعتراض علي القيمة ولكن من باب التعلم كيف احسب هذه القيمة باسلوب صحيح
هل يمكنني ان اغير تردد الكريستاله كما علمتني لآن البيك الموجود عندي لايقبل العمل الا علي 4 ميجا فقط
اشكرك اخي الحبيب وبارك الله لك
|
السلام عليكم
نعم يمكن تغير تردد كرستاله الى 4 ولكن لابد من ضبط داله الانتربت وكتالي
كود:
//Timer0
//Prescaler 1:4; TMR0 Preload = 6; Actual Interrupt Time : 1 ms
//Place/Copy this part in declaration section
void InitTimer0(){
OPTION_REG = 0x81;
TMR0 = 6;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 6;
//Enter your code here
if(se==0){
porte.f0=0;
porte.f0=1;
PORTA.F1=0;
PORTA.F1=1;
PORTA.F0=1;
}
PORTA.F1=0;
PORTA.F1=1;
PORTA.F2=0;
PORTA.F2=1;
portb=~segment[num[se]];
PORTA.F0=0;
se++;
if(se==16)se=0;
}
ملاحظه اعيد ضبط تردد كرستاله في بروتيس ومايكروسي على 4 ميكا
================================================
اما لحساب الزمن الكلي فبطبع الا يتجاوز 20 ملي ثانيه او اكثر بقليل وحساباتك صحيحه ولكن لا اعلم اذا قل زمن مثلا عن1 ملي هل يشتغل سفن سكمنت ام لا فهذه تحتاج الى تجربه ذلك
ولكن بالتاكيد عليك بتغذيه كمن عبر ترانزستور لرفع التيار حتى تتمكن من اعطاء اضاءه واضحه للسفن سكمنت