本帖最后由 pharkeu 于 2013-1-27 22:59 编辑
用的是12F576, 32.768K晶振接的OSC1,OSC2之间,分别电容22PF接地。波形用示波器量过是有的,但是无论如何配置,timer1都没办法是用这个外置的时钟源(TMR1CS置1时,timer1似乎无时钟输入,timer1中断始终无法产生)。但是,TMR1CS置0时,选择 Fosc/4(内部系统时钟,此时工作正常,输出方波,但是输入时钟已是四分频后的频率)。
用16F684搭了一个同样的电路,同时配置timer1设置,是一样的问题,搞了好几天,没弄出来,有点郁闷,看说明文档,在LP模式下,timer1是可以使用这个外部时钟源的。。。不晓得问题出在哪里???特来求助,具体代码如下:
__CONFIG(WDTDIS & PROTECT & MCLRDIS & PWRTDIS & BORDIS & LP);
void Timer1_init()
{
TMR1H =0x80;
TMR1L = 0x00;
GIE= 1;
PEIE=1;
TMR1IE=1;
TMR1GE = 0;
T1OSCEN = 1;
TMR1CS = 1; //选择外部时钟
T1CKPS0 = 0;
T1CKPS1 = 0;
T1SYNC = 1;
TMR1ON = 1; // 开启T1
}
void main()
{
CMCON=0x07;
ANSEL = 0x00; //no AD port.
TRISIO = 0x04; //GP2 as input, GP1 as output
Timer1_init();
while(1);
}
void interrupt ISR(void)
{
if(TMR1IF)
{
TMR1IF = 0;
TMR1H =0x80;
TMR1L = 0x00;
GPIO1 = !GPIO1 ; //输出方波
}
} |