10F322定时器 求解

2020-02-06 09:50发布

我的编译器HI-TECH 9.83   
MPLAB IDE V8.92

#include "pic.h"


__CONFIG(FOSC_INTOSC&MCLRE_OFF&WDTE_OFF);   //配置位,参考芯片头文件


#define p_led0        LATAbits.LATA2               
#define p_led1        LATAbits.LATA1




bit f_led;

//-------------------------------------------------------------------------------
//  系统初始化
//-------------------------------------------------------------------------------
void System_Init(void)
{
        OSCCON=0b01100000;   //内部8M
        LATA  = 0b00000000;         
        TRISA  = 0b00000000;            
       
        OPTION_REGbits.T0CS = 0;      
    OPTION_REGbits.PSA = 0;      
    OPTION_REGbits.PS = 0b000;  
   
        INTCONbits.TMR0IE = 1;  
    INTCONbits.GIE =1;   
        INTCONbits.PEIE = 1;  

}
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//  中断程序
//-------------------------------------------------------------------------------
void interrupt SystemISR(void)      //系统中断
{

        if((INTCONbits.TMR0IE) & (INTCONbits.TMR0IF))                   //TMR2中断       
        {
                TMR0IF=0;               
                TMR0=20;
       
                p_led0=!p_led0;                
        }
}
//-------------------------------------------------------------------------------
//  主程序部分
//-------------------------------------------------------------------------------
void main(void)
{
        System_Init();         
       
               
        while(1)
        {
                p_led1 = !p_led1;
                       

        }
}

本意是定时多少时间 管脚电平翻转
示波器测试出来的 波形不是方波。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。