10F322定时器 求解
我的编译器HI-TECH 9.83MPLAB 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;
}
}
本意是定时多少时间 管脚电平翻转
示波器测试出来的 波形不是方波。
PIC有些引脚是有模拟比较器功能的,特殊的引脚要看文档才能用好。 估计是有模拟复用功能没有关闭吧
页:
[1]