求助:问什么我用的定时器1不起振呢?

2020-02-08 12:20发布

用PIC16LF1933,定时器1用外部32.768,时钟总是不起振,刚刚用PIC不太熟悉。

int main(void)
{
        OSCCON = 0xdb;
        PORTA = 0xff;
        PORTB = 0xff;
        PORTC = 0xff;
        PORTE = 0xff;

        TRISA = 0;
        TRISB = 0;
        TRISC = 0;
        TRISE = 0;

        ANSELA = 0;
        ANSELB = 0;
       
        T1OSCEN = 1;//使能振荡器
        TMR1CS0 = 0;//
        TMR1CS1 = 1;//
        TMR1ON = 1;//使能定时器
       
        //while(!T1OSCR)

        UartInit();

        while(1)
        {
                put_sdbg("TMR1L= %f ",TMR1L);//串口打印出来的数一直不变。
                delay();
        }
        ;
}

不使能振荡器1的话 T1OSO和T1OSI为高电平,使能后变为0.6v,说明振荡器使能没有问题。Timer1用内部时钟时TMR1L时也能正常工作。

不知道PIC的异步时钟是不是需要其他特殊设置,晶振并联1.5Mohm起振电阻也试过了,失败。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
surf_131
2020-02-08 15:08
lz,你先用内部振荡器推动tmr1,确定没有问题,再改用外接的晶体。不过,好像选择的不该是“外部振荡器”,而是内部振荡器配接晶体。请查对手册,确定你的时钟接法与设置相对应。所谓外部振荡器,是将tmr1作为计数器,外部送进来脉冲。

手册很重要,pic的手册也很详细。

一周热门 更多>