السلام عليكم
تم الحل و الحمد لله الأمر في غاية البساطة و لا يحتاج لشرح .... هنا مثال لطريقة تشغيل ثلاث تايمرات
لاحظت شيء في غاية الأهمية و قد يحدث مع كثير منا .... أنا أعمل من حاسوبين في مكانين مختلفين أحدهما مجهز بالنت و الثاني لا عندما أجلس أمام الحاسوب المجهز بالنت و تواجهني مشكلة ما لا أسعى لحلها بل أبحث في النت و نادرا ما أجد الحل أما عند جلوسي أمام الحاسوب الذي لا يحتوي نت و مع قليل من الجهد و التركيز أحل أغلب مشاكلي في وقت وجيز
void InitTimers(){
T0CON = 0xC4;
TMR0IF_bit = 0x00;
TMR0L = 0xD1;
TMR0IE_bit = 0x01;
//-------------------
T1CON = 0x01;
TMR1IF_bit = 0x00;
TMR1H = 0xAE;
TMR1L = 0xD1;
TMR1IE_bit = 0x01;
//-------------------
T2CON = 0xFF;
TMR2IF_bit = 0x00;
TMR2 = 0xF0;
TMR2IE_bit = 0x01;
INTCON = 0xC0;
}
//================================================== ============================
void Interrupt(){
if(TMR0IF_bit){
TMR0IF_bit = 0x00;
TMR0L = 0xD1;
PORTB.F0 = ~PORTB.F0;
}
if(TMR1IF_bit){
TMR1IF_bit = 0x00;
TMR1H = 0xAE;
TMR1L = 0xD1;
PORTB.F1 = ~PORTB.F1;
}
if(TMR2IF_bit){
TMR2IF_bit = 0x00;
TMR2 = 0xF0;
PORTB.F2 = ~PORTB.F2;
}
}
//================================================== ============================
void main() {
TRISB = 0;
PORTB = 0;
InitTimers();
while(1){
}
}