شكرا لك اخى حسن اعرف كيف اضع القيم فى البرنامج ولاكن مشكلتى فى برنامج المايكروسى بعد اضافة الكود من البرنامج الى المايكرو سى كيف اجعل portb.f0 يضىء ويطفى ليد كل ثانية ؟؟ اعرف يجب اضافة متغير يعد الطفحان ولاكن طريقة كتابته غير واضحة لدى
هنا فى البرنامج استخدمت تايمر زيرو و كريستالة 4MHZ مع 10 ملى ثانية والمايكرو هو pic 16f628
وهذا هو الكود
كود:
//Timer0
//Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms
//Place/Copy this part in declaration section
void InitTimer0(){
OPTION_REG = 0x85;
TMR0 = 100;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 100;
//Enter your code here
}
}
كتبت البرنامج كيف استخدم التايمر زيرو بدل استعمال الامر
كيف يكون شكل الكود ؟؟
كود:
char x=0;
//Timer0
//Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms
//Place/Copy this part in declaration section
void InitTimer0(){
OPTION_REG = 0x85;
TMR0 = 100;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 100;
//Enter your code here
}
}
void main()
{
cmcon=7;
porta=0;
portb=0;
trisa=trisb=0;
while(1)
{
portb=1; delay_ms(1000);
portb=0; delay_ms(1000);
}
}
|
السلام عليكم
تفضل اخي كريم
كود:
char x=0 , flag_bit=0;
//Timer0 //Prescaler 1:64; TMR0 Preload = 100; Actual Interrupt Time : 9.984 ms //Place/Copy this part in declaration section
void InitTimer0()
{ OPTION_REG = 0x85;
TMR0 = 100;
INTCON = 0xA0;
}
void Interrupt()
{
if (TMR0IF_bit)
{ TMR0IF_bit = 0;
TMR0 = 100;
//Enter your code here
x++;
if(x==100)flag_bit=1;
if(x==200)
{
flag_bit=2;
x=0;
}
}
}
void main()
{
cmcon=7;
InitTimer0();
trisa=0;
trisb=0;
porta=0;
portb=0;
while(1)
{
if(flag_bit==1)
{
portb=1;
}
if(flag_bit==2)
{
flag_bit=0;
portb=0;
}
}
}
ملاحظه اخي عند كتابه trisa=trisb=0 فان معنى ذلك ان قيمه trisa تصبح مساويه ل trisb ومن ثم تصبح 0 ولكن trisb لايساوي 0 لان النتيجه دائما تذهب الى متغير او ريجيستر قبل علامه =
لهذا عليك كتابه trisb=0 trisa=0
البرنامج ولدلك كود كامل ولكن اعطاك داله التهيئه لتايمر سواء كان تايمر0 او تايمر 1او ........ فانك لازم تأخذ هذه داله وتضعها في داله main لكي يتم استدعائها
ارجو ان وضحت لك