با سلام :wow:
من یه برنامه نوشتم که با timer0 کار کنم :mrgreen:
خود timer رو به صورت 16bit راه انداختم ولی خروجی که میخوام به من نمیده تایماش درست در نمیاد :sad: کل برنامه رو گذاشتم
یه سوال
من اومدم از flag تایمر 0 برای چک کردن استفاده کردم از طرفی چون این بیت داخل ریجیستر وقفه هست نمیخواد که وقفه رو روشن کنم ؟
#include<p18f4550.h>
#pragma config WDT=OFF,LVP=OFF,FOSC=HS
void wait(void);
#define mybit PORTBbits.RB4
void main(){
TRISBbits.TRISB4=0;
while(1){
mybit=0;
wait();
mybit=1;
wait();
}
}
void wait(void){
T0CON=0x7; // timer0 is off ,16bit mod,prescaler=256
TMR0H=0;
TMR0L=0;
T0CONbits.TMR0ON=1;
while(INTCONbits.TMR0IF==0);
T0CONbits.TMR0ON=0;
INTCONbits.TMR0IF==0;
}
من یه برنامه نوشتم که با timer0 کار کنم :mrgreen:
خود timer رو به صورت 16bit راه انداختم ولی خروجی که میخوام به من نمیده تایماش درست در نمیاد :sad: کل برنامه رو گذاشتم
یه سوال
من اومدم از flag تایمر 0 برای چک کردن استفاده کردم از طرفی چون این بیت داخل ریجیستر وقفه هست نمیخواد که وقفه رو روشن کنم ؟
#include<p18f4550.h>
#pragma config WDT=OFF,LVP=OFF,FOSC=HS
void wait(void);
#define mybit PORTBbits.RB4
void main(){
TRISBbits.TRISB4=0;
while(1){
mybit=0;
wait();
mybit=1;
wait();
}
}
void wait(void){
T0CON=0x7; // timer0 is off ,16bit mod,prescaler=256
TMR0H=0;
TMR0L=0;
T0CONbits.TMR0ON=1;
while(INTCONbits.TMR0IF==0);
T0CONbits.TMR0ON=0;
INTCONbits.TMR0IF==0;
}
دیدگاه