اخي عبد الله سوال هل يمكن زيادة عدد الدواراتfor مثلا 3 او 4 كحد اقصى مع pic18f4520
|
وعليكم السلام ورحمه الله
شكرااا على كلامك الطيب ..
اليك هذا الكود تم استخدام ال 3 تيمرات فى ال
PIC16F877A
اخى ضع الكود الذى تريد استخدامة فى الأربع حلقات فى موقع ...
كود:
//Enter your code here
كود:
// PIC16F877A
int M;
int X;
int A;
int B;
//Timer0
//Prescaler 1:128; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms
void InitTimer0(){
OPTION_REG = 0x86;
TMR0 = 100;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 100;
for(X=0;X<15;X++)
{
//Enter your code here
}
}
}
//Timer1
//Prescaler 1:1; TMR1 Preload = 45536; Actual Interrupt Time : 10 ms
void InitTimer1(){
T1CON = 0x01;
TMR1IF_bit = 0;
TMR1H = 0xB1;
TMR1L = 0xE0;
TMR1IE_bit = 1;
INTCON = 0xC0;
}
void Interrupt1(){
if (TMR1IF_bit){
TMR1IF_bit = 0;
TMR1H = 0xB1;
TMR1L = 0xE0;
for(M=0;M<15;M++)
{
//Enter your code here
}
}
}
//Timer2
//Prescaler 1:16; Postscaler 1:5; TMR2 Preload = 250; Actual Interrupt Time : 10.0025 ms
void InitTimer2(){
T2CON = 0x26;
PR2 = 250;
TMR2IE_bit = 1;
INTCON = 0xC0;
}
void Interrupt2(){
if (TMR2IF_bit){
TMR2IF_bit = 0;
for(A=0;A<15;A++)
{
//Enter your code here
}
}
}
void Init_PORT()
{
TRISB = 0; PORTB = 0;
TRISC = 0; PORTC = 0;
TRISD = 0; PORTD = 0;
TRISA = 0; PORTA = 0;
TRISE = 0; PORTE = 0;
}
void main() {
Init_PORT();
InitTimer0();
InitTimer1();
InitTimer2();
while(1){
for(B=0;B<15;B++)
{
//Enter your code here
}
}
}
ملحوظة يستحسن استخدام كرستالة 8 ميجا
.....................