zoukankan      html  css  js  c++  java
  • PIC16F690 TMR1初始化设置及应用

    //timer1 分频值
    #define		TIMER1_DIV1		(0<<4)
    #define		TIMER1_DIV2		(1<<4)
    #define		TIMER1_DIV4		(2<<4)
    #define		TIMER1_DIV8		(3<<4)
    //-----时钟源选择------------
    #define		T1_FOSC			(1<<1)	
    #define		T1_FOSC_4		(0<<1)
    
    //---------------
    #define	TIMER1_IEN_ENB 	TMR1IE = 1 	//使能T1中断
    #define	TIMER1_IEN_DIS 	TMR1IE = 0  //禁止T1中断
    
    //----定时器使能---------
    #define	TIMER1_CNT_ENB 	TMR1ON = 1 	//使能T1计数
    #define	TIMER1_CNT_DIS 	TMR1ON = 0  //禁止T1计数
    
    
    
    
    //*************************************
    // 函数名称:Init_Timer1
    // 函数功能:定时器0初始化
    // 入口参数:定时器分频值 计数值
    // 出口参数:无
    // T1的时钟源为Fosc/4
    //***************************************
    void Init_Timer1(uint8 pscr)
    {
    	TMR1IF = 0 ;
    	TMR1IE = 0 ;
    	T1CON = T1_FOSC_4 | 0X01 | pscr; //开启定时器1
    
    	TMR1IE = 0 ;
    } 
    
    
    //---实例应用-------
    
    void main(void)
    {
    	//初始化定时器1 计时频率为1M
    	Init_Timer1(TIMER1_DIV2) ;//8/4/2=1M OK
    	TIMER1_IEN_ENB ;
    
    	while(1)
    	{
    		while(!F_10MS); //10MS跑一次主程序
    		F_10MS = 0 ;
    
    		.
    		.
    		.
    	}
    }
    
    //---中断服务程序------
    void interrupt server(void) 
    {
    	if(TMR1IF && TMR1IE) //定时器1中断
    	{
    		TMR1IF = 0 ;
    
    		TMR1H = (65536-10000)/256 ; //计时10MS
    		TMR1L = (65536-10000)%256 ;
    
    		F_10MS = 1 ;
    		
    	}
    }


  • 相关阅读:
    昨天
    独一无二
    参加婚礼
    好好说话
    叶问4
    争吵+侦探成旭
    慢慢来
    cs go
    附3、Storm课程学习整体思路及问题 ---没用
    7、kafka知识总结
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3275426.html
Copyright © 2011-2022 走看看