色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC16位單片機CAN(7)定時器

          PIC16位單片機CAN(7)定時器

          作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏
          定時器相對來說是最簡單的了,也沒有什么說的,
          每個定時器模塊都是 16 位定時器 / 計數(shù)器,由以下可讀 / 寫寄存器組成:
          ? TMRx:16 位定時器計數(shù)寄存器
          ? PRx:與定時器相關(guān)的 16 位定時器周期寄存器
          ? TxCON:與定時器相關(guān)的 16 位定時器控制寄存器
          需要注意的是:
          1:定時器是16位了,也可以配置為32位的,具體看文檔,這里使用16位的定時器。
          2:PRx:與定時器相關(guān)的 16 位定時器周期寄存器。也就是TMRx的值和PRx值相等時產(chǎn)生中斷。】
          下面看程序:
          /******************************************************************
          初始化Time1為定時器模式
          參數(shù):
          ******************************************************************/
          void Time1Init(void)
          {
          T1CONbits.TON = 0; // Disable Timer
          T1CONbits.TCS = 0; // Select internal instruction cycle clock
          T1CONbits.TGATE = 0; // Disable Gated Timer mode
          T1CONbits.TCKPS = 0b11; // Select 1:256 Prescaler
          TMR1 = 0x00; // Clear timer register
          PR1 =46875; // Load the period value 相當于1秒產(chǎn)生一次中斷
          T1CONbits.TON = 1; // Enable Timer
          }
          中斷處理函數(shù)為
          /******************************************************************
          定時器1中斷 1s中斷一次 發(fā)送一次CAN數(shù)據(jù)
          參數(shù):
          ******************************************************************/
          void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void)
          {
          IFS0bits.T1IF = 0; //Clear Timer1 interrupt flag
          Ecan1_WriteMessage(AD_Data);//CAN發(fā)送數(shù)據(jù)
          }



          關(guān)鍵詞: PIC16位單片機定時

          評論


          技術(shù)專區(qū)

          關(guān)閉