99久久久久国产-99久久久久国产精品免费-99久久久久久久-99久久久免费精品免费-99久久免费费视频在线观看

131 1300 0010
電機(jī)伺服
當(dāng)前位置: 首頁>> 電源技術(shù)>>電機(jī)伺服>>
  • 導(dǎo)航欄目
  • 逆變電源
  • 開關(guān)電源
  • 電機(jī)伺服
  • 其他電源
  • 電機(jī)控制基礎(chǔ)2——定時(shí)器捕獲單輸入脈沖原理
    電機(jī)控制基礎(chǔ)2——定時(shí)器捕獲單輸入脈沖原理
  • 電機(jī)控制基礎(chǔ)2——定時(shí)器捕獲單輸入脈沖原理
  •   發(fā)布日期: 2021-06-24  瀏覽次數(shù): 1,637

    1 問題引出

    單片機(jī)與嵌入式開發(fā)中,某些場景需要捕獲傳感器的高電平(或低電平)信號的持續(xù)時(shí)間,如紅外解碼信號、編碼器輸入信號等。

     

    如下圖,以單一的一段高電平輸入信號為例,如何測量這段高電平的時(shí)間呢?

    從直觀上理解,就是要不斷的檢測這個(gè)信號,當(dāng)信號從0變到1時(shí),記錄一個(gè)時(shí)間,再從1變到0時(shí),記錄另一個(gè)時(shí)間,兩個(gè)時(shí)間差就是高電平的持續(xù)時(shí)間了。那具體要怎么編程呢?這就要用到定時(shí)器了。

    2 定時(shí)器的捕獲原理

    上篇介紹了定時(shí)器的輸出功能,本篇是利用定時(shí)器的輸入功能,來計(jì)算脈沖時(shí)長。如下圖:

    • 定時(shí)器的CNT計(jì)數(shù)器在不停的計(jì)數(shù)

    • 首先配置定時(shí)器的輸入通道為上升沿捕獲,這樣當(dāng)檢測到從0到1的跳變時(shí),CCR1就會(huì)先保存當(dāng)前的CNT值,同時(shí)CNT會(huì)清零重新開始計(jì)數(shù)

    • 然后將定時(shí)器的輸入通道為下降沿捕獲,當(dāng)檢測從1到0的跳變時(shí),CCR2就會(huì)先保存當(dāng)前的CNT值

    • 在這期間,CNT的計(jì)數(shù)值可能會(huì)溢出,這不影響,記錄下溢出的次數(shù),并重新開始計(jì)數(shù)即可

    • 最終,t2-t1的高電平時(shí)間,就可以通過N次的溢出時(shí)間加CCR2保存的時(shí)間來計(jì)算獲得了

    poYBAGDQvDmAVWWNAAELc5qfGa4389.png

     

     

    3 定時(shí)器常用的寄存器

    上篇介紹了定時(shí)器輸出PWM時(shí)用到的幾個(gè)寄存器(CR、CCMR、CNT、PSC、ARR、CCR等),這里再介紹幾個(gè)捕獲信號時(shí)需要用到的幾個(gè)寄存器:

    3.1 捕獲/比較模式寄存器CCMR1

    CCMR寄存器上篇已有介紹,只是上篇僅介紹了輸出模式下的功能,本篇再介紹一下它在輸入模式下的功能:

    這些通道可用于輸入(捕獲模式)輸出(比較模式)模式。通道方向通過配置相應(yīng)的 CCxS 位進(jìn)行定義。此寄存器的所有其它位在輸入模式和輸出模式下的功能均不同。對于任一給定位

    • OCxx 用于說明通道配置為輸出時(shí)該位對應(yīng)的功能

    • ICxx 則用于說明通道配置為輸入時(shí) 該位對應(yīng)的功能

    因此,必須注意同一個(gè)位在輸入階段和輸出階段具有不同的含義。

    poYBAGDQvD-Acon1AABGDNkRr5A476.png

    這里僅先介紹輸入模式下的功能:

    • 位 15:12 IC2F:輸入捕獲 2 濾波器 (Input capture 2 filter)

    • 位 11:10 IC2PSC[1:0]:輸入捕獲 2 預(yù)分頻器 (Input capture 2 prescaler)

    • 位 9:8 CC2S:捕獲/比較 2 選擇 (Capture/compare 2 selection) 用法參照下面的CC1S通道1

    • 位 7:4 IC1F:輸入捕獲 1 濾波器 (Input capture 1 filter)

      數(shù)字濾波器由事件計(jì)數(shù)器組成,每 N 個(gè)事件才視為一個(gè)有效邊沿:

      • 0000:無濾波器

      • 0001~1111:其它頻率的濾波器

    • 位 3:2 IC1PSC:輸入捕獲 1 預(yù)分頻器 (Input capture 1 prescaler)

      此位域定義 CC1 輸入 (IC1) 的預(yù)分頻比。只要 CC1E=0(TIMx_CCER 寄存器),預(yù)分頻器便立即復(fù)位。

      • 00:無預(yù)分頻器,捕獲輸入上每檢測到一個(gè)邊沿便執(zhí)行捕獲

      • 01~11:每發(fā)生 2 (4、8)個(gè)事件便執(zhí)行一次捕獲

    • 位 1:0 CC1S:捕獲/比較 1 選擇 (Capture/Compare 1 selection),此位域定義通道方向(輸入/輸出)以及所使用的輸入。

      • 00:CC1 通道配置為輸出

      • 01:CC1 通道配置為輸入,IC1 映射到 TI1 上

      • 10:CC1 通道配置為輸入,IC1 映射到 TI2 上

      • 11:CC1 通道配置為輸入,IC1 映射到 TRC 上。此模式僅在通過 TS 位(TIMx_SMCR 寄存器)選擇內(nèi)部觸發(fā)輸入時(shí)有效

    注: 僅當(dāng)通道關(guān)閉時(shí)(TIMx_CCER 中的 CC1E = 0),才可向 CC1S 位寫入數(shù)據(jù)。

    3.2 捕獲/比較使能寄存器CCER

    我們要用到這個(gè)寄存器的最低 2 位, CC1E 和 CC1P。

    pYYBAGDQvECAG18AAAAqgbJouDE128.png

    • 位 15、11、7、3 CCxNP:捕獲 /比較x 輸出極性 (Capture/Comparex output Polarity)。

      • CCx 通道配置為輸出: CCxNP 必須保持清零。

      • CCx 通道配置為輸入:此位與 CCxP 配合使用,用以定義 TI1FP1/TI2FP1 的極性。請參見 CCxP 說明。

    • 位 14、10、6、2 保留,必須保持復(fù)位值。

    • 位 13、9、5、1 CCxP:捕獲 /比較x 輸出極性 (Capture/Comparex output Polarity)。

      • 00:非反相/上升沿觸發(fā) 電路對 TIxFP1 上升沿敏感 (在復(fù)位模式、外部時(shí)鐘模式或觸發(fā)模式下執(zhí)行捕獲或觸發(fā)操作), TIxFP1 未反相 (在門控模式或編碼器模式下執(zhí)行觸發(fā)操作)。

      • 01:反相/下降沿觸發(fā) 電路對 TIxFP1 下降沿敏感 (在復(fù)位模式、外部時(shí)鐘模式或觸發(fā)模式下執(zhí)行捕獲或觸發(fā)操作), TIxFP1 反相 (在門控模式或編碼器模式下執(zhí)行觸發(fā)操作)。

      • 10:保留,不使用此配置。

      • 11:非反相/上升沿和下降沿均觸發(fā) 電路對 TIxFP1 上升沿和下降沿都敏感(在復(fù)位模式、外部時(shí)鐘模式或觸發(fā)模式下執(zhí)行捕獲或觸發(fā)操作),TIxFP1 未反相(在門控模式下執(zhí)行觸發(fā)操作)。編碼器模式下不得使用此配置。

      • 0:OCx 高電平有效

      • 1:OCx低電平有效

      • CCx 通道配置為輸出

      • CCx 通道配置為輸入

        CCxNP/CCxP 位可針對觸發(fā)或捕獲操作選擇 TI1FP1 和 TI2FP1 的極性。

    • 位 12、8、4、0 CCxE:捕獲 /比較 x 輸出使能 (Capture/Comparex output enable)。

      • 0:禁止捕獲

      • 1:使能捕獲

      • 0:關(guān)閉––OCx 未激活

      • 1:開啟––在相應(yīng)輸出引腳上輸出 OCx信號

      • CCx 通道配置為輸出

      • CCx 通道配置為輸入

        此位決定了是否可以實(shí)際將計(jì)數(shù)器值捕獲到輸入捕獲/比較寄存器 1 (TIMx_CCR1) 中。

    3.3 DMA/中斷使能寄存器DIER

    我們需要用到中斷來處理捕獲數(shù)據(jù),所以必須開啟通道 1 的捕獲比較中斷,即 CC1IE 設(shè)置為 1 。

    pYYBAGDQvEGAZLeLAAAkg5HrLUE613.png

    • 位 15、13、7、5 保留,必須保持復(fù)位值。

    • 位 14 TDE:觸發(fā) DMA 請求使能 (Trigger DMA request enable)

    • 位 12~位9 CCxDE:捕獲/比較x DMA 請求使能 (Capture/Compare 1 DMA request enable)

    • 位 8 UDE:更新 DMA 請求使能 (Update DMA request enable)

    • 位 6 TIE:觸發(fā)信號(TRGI)中斷使能 (Trigger interrupt enable)

    • 位 4~位1 CCxIE:捕獲/比較x 中斷使能 (Capture/Compare 1 interrupt enable)

    • 位 0 UIE:更新中斷使能 (Update interrupt enable)

     

    4 編程

    4.1 定時(shí)器初始化

    4.1.1 GPIO初始化

    這里用到的是定時(shí)器5的通道1,根據(jù)STM32F407的數(shù)據(jù)手冊“3 Pinouts and pin description”中的“Table 9. Alternate function mapping”復(fù)用引腳說明表,可以看到定時(shí)器5通道1對應(yīng)的引腳位A0,所以使用A0作為信號的輸入引腳。poYBAGDQvEKAKgZ3AAD7x9uese0683.png

    因此程序中對A0引腳可以這樣配置,注意一定要配置引腳的復(fù)用功能

    GPIO_InitTypeDef GPIO_InitStructure;      /*GPIO 結(jié)構(gòu)體*/
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能PORTA時(shí)鐘 
    
    /*輸入信號的GPIO初始化*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;      //GPIOA0
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;    /*復(fù)用功能*/
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //速度100MHz
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;   //推挽復(fù)用輸出
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;   /*下拉*/
    GPIO_Init(GPIOA,&GPIO_InitStructure);        //初始化PA0
    
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5); //PA0復(fù)用位定時(shí)器5

     

    4.1.2 時(shí)基初始化

    使用定時(shí)器,時(shí)基初始化是必不可少的,就是要設(shè)置一些計(jì)數(shù)的頻率與溢出值(自動(dòng)重裝載值):

    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /*時(shí)基 結(jié)構(gòu)體*/
    
    /*時(shí)基初始化*/
    TIM_TimeBaseStructure.TIM_Period=arr;   /* 自動(dòng)重裝載值 */
    TIM_TimeBaseStructure.TIM_Prescaler=psc; /* 定時(shí)器分頻 */
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上計(jì)數(shù)模式
    TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure);

     

    4.1.3 輸入通道初始化

    將定時(shí)器的通道1設(shè)置為輸入捕獲模式:

    TIM_ICInitTypeDef TIM5_ICInitStructure;    /*輸入通道 結(jié)構(gòu)體*/
    
    /*輸入通道初始化,初始化TIM5輸入捕獲參數(shù)*/
    TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1;        //CC1S=01 選擇輸入端 IC1映射到TI1上
    TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; /* 上升沿捕獲 */
    TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上
    TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;     //配置輸入分頻,不分頻 
    TIM5_ICInitStructure.TIM_ICFilter = 0x00;            //IC1F=0000 配置輸入濾波器 不濾波
    TIM_ICInit(TIM5, &TIM5_ICInitStructure);
    
    TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE); /* 允許更新(溢出)中斷 ,允許CC1IE捕獲中斷 */ 
    
    TIM_Cmd(TIM5,ENABLE ); //使能定時(shí)器5
    • 關(guān)于配置CCMR1、CCER寄存器

    CCMR1:

    poYBAGDQvD-Acon1AABGDNkRr5A476.png

    CCER:pYYBAGDQvECAG18AAAAqgbJouDE128.png

    TIM_ICInit函數(shù)對應(yīng)于輸入通道的初始化,其實(shí)就是操作CCMR1CCER寄存器:

    void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
    {
     if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
     {  /* TI1 配置 */
       TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
             TIM_ICInitStruct->TIM_ICSelection,
             TIM_ICInitStruct->TIM_ICFilter);
       /* 設(shè)置中斷捕獲預(yù)分頻值 */
       TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
     }
     else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2)
     {
       /*省略...*/
     }
    }
    
    static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection,uint16_t TIM_ICFilter)
    {
     uint16_t tmpccmr1 = 0, tmpccer = 0;
    
     /* 關(guān)閉通道1: 復(fù)位CC1E位 */
     TIMx->CCER &= (uint16_t)~TIM_CCER_CC1E;
     tmpccmr1 = TIMx->CCMR1;
     tmpccer = TIMx->CCER;
    
     /* 通過設(shè)置CC1S選擇為輸入模式, 并配置濾波器 */
     tmpccmr1 &= ((uint16_t)~TIM_CCMR1_CC1S) & ((uint16_t)~TIM_CCMR1_IC1F);
     tmpccmr1 |= (uint16_t)(TIM_ICSelection | (uint16_t)(TIM_ICFilter << (uint16_t)4));
    
     /* 選擇CC1P極性并設(shè)置CC1E位 */
     tmpccer &= (uint16_t)~(TIM_CCER_CC1P | TIM_CCER_CC1NP);
     tmpccer |= (uint16_t)(TIM_ICPolarity | (uint16_t)TIM_CCER_CC1E);
    
     /* 寫數(shù)據(jù)到 TIMx 的CCMR1 和 CCER 寄存器 */
     TIMx->CCMR1 = tmpccmr1;
     TIMx->CCER = tmpccer;
    }
    
    void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC)
    {
     TIMx->CCMR1 &= (uint16_t)~TIM_CCMR1_IC1PSC; /* 復(fù)位IC1PSC位 */
     TIMx->CCMR1 |= TIM_ICPSC;          /* 設(shè)置IC1PSC值 */
    }
    • 關(guān)于配置DIER寄存器

    pYYBAGDQvEGAZLeLAAAkg5HrLUE613.png

    TIM_ITConfig函數(shù)對于中斷的開啟,其實(shí)就是操作DIER寄存器:

    void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState)
    { 
     if (NewState != DISABLE)
     {  /* 使能中斷 */
       TIMx->DIER |= TIM_IT;
     }
     else
     {  /* 失能中斷 */
       TIMx->DIER &= (uint16_t)~TIM_IT;
     }
    }

     

    4.1.4 定時(shí)器中斷初始化

    定時(shí)器中斷的使能設(shè)置已在上面的定時(shí)器配置中設(shè)置,這里只是進(jìn)行常規(guī)的配置定時(shí)器中斷的優(yōu)先級:

    /*定時(shí)器中斷配置*/
    NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; //搶占優(yōu)先級3
    NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //子優(yōu)先級3
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  //IRQ通道使能
    NVIC_Init(&NVIC_InitStructure);           //根據(jù)指定的參數(shù)初始化NVIC寄存器

     

    4.2 定時(shí)器中斷服務(wù)函數(shù)

    此處用到了兩個(gè)全局變量,用于輔助實(shí)現(xiàn)高電平捕獲。其中:

    • TIM5CH1_CAPTURE_VAL用來記錄捕獲到下降沿的時(shí)候 TIM5_CNT的值。

    • TIM5CH1_CAPTURE_STA用來記錄捕獲狀態(tài),我們把它當(dāng)成一個(gè)寄存器那樣來使用 。其各位描述下:

    poYBAGDQvEKAFfL2AAEK03xP02U575.png

    u8 TIM5CH1_CAPTURE_STA=0; //輸入捕獲狀態(tài)(當(dāng)中一個(gè)自制的寄存器使用,初始為0) 
    u32 TIM5CH1_CAPTURE_VAL; //輸入捕獲值(TIM2/TIM5是32位)
    
    /**
    * @brief 定時(shí)器5中斷服務(wù)程序
    */
    void TIM5_IRQHandler(void)
    {  
     if((TIM5CH1_CAPTURE_STA&0X80)==0)//還未成功捕獲 (1000 0000)
     {
     /*定時(shí)器溢出中斷*/
     if(TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET)
     {   
      if(TIM5CH1_CAPTURE_STA&0X40)/* 之前標(biāo)記了開始信號(0100 0000) */
      {
      if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F) /* 高電平太長了,計(jì)數(shù)溢出了 (0011 1111) */
      {
       TIM5CH1_CAPTURE_STA|=0X80;  /* (強(qiáng)制)標(biāo)記成功捕獲了一次 (1000 0000) */
       TIM5CH1_CAPTURE_VAL=0XFFFFFFFF; /* 因?yàn)橐绯龃螖?shù)N不能再加了,就將當(dāng)前的捕獲值設(shè)置為32位的最大值,等效Nmax+1*/
      }
      else /* 正常情況是不會(huì)溢出,最終得出正確的高電平時(shí)間 */
      {
       TIM5CH1_CAPTURE_STA++; /* 累計(jì)定時(shí)器溢出次數(shù)N */
      }
      }
      else
      {
      /* 還沒有捕獲到信號時(shí),定時(shí)器溢出后什么也不做,自己清零繼續(xù)計(jì)數(shù)即可 */
      }
     }
     
     /*捕獲1發(fā)生捕獲事件*/
     if(TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)
     { 
      /*捕獲到一個(gè)下降沿(結(jié)束信號)*/
      if(TIM5CH1_CAPTURE_STA&0X40) /* 之前標(biāo)記了開始信號(0100 0000) */   
      {   
      TIM5CH1_CAPTURE_STA|=0X80;           /* 標(biāo)記成功捕獲到一次高電平脈寬 (1000 0000) */
      TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);     /* 獲取當(dāng)前的捕獲值 */
       TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); /* CC1P=0 重新設(shè)置為上升沿捕獲,用于下次捕捉信號 */
      }   
      /*還未開始,第一次捕獲 上升沿(起始信號) */
      else     
      {
      TIM5CH1_CAPTURE_STA=0;  /* 清空 捕獲狀態(tài)寄存器 */
      TIM5CH1_CAPTURE_VAL=0;     /* 清空 捕獲值 */
      TIM5CH1_CAPTURE_STA|=0X40; /* 標(biāo)記捕獲到了上升沿 (0100 0000) */
      
      TIM_Cmd(TIM5,DISABLE );   /* 關(guān)閉定時(shí)器5 */
       TIM_SetCounter(TIM5,0);     /* 清空CNT,重新從0開始計(jì)數(shù) */
       TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling); /* CC1P=1 設(shè)置為下降沿捕獲 */
      TIM_Cmd(TIM5,ENABLE );     /* 使能定時(shí)器5 */
      }   
     }          
     }
     TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中斷標(biāo)志位
    }

    再來對比一下這張圖:

    poYBAGDQvDmAVWWNAAELc5qfGa4389.png

    • 初始化時(shí)設(shè)置為上升沿觸發(fā),觸發(fā)后(起始信號),清空CNT,重新從0開始計(jì)數(shù),并設(shè)置為下降沿捕獲

    • 在之后的過程中可能會(huì)有多次定時(shí)器計(jì)數(shù)溢出,即TIM5CH1_CAPTURE_STA++(使用低6位),也即N的值

    • 最后捕捉到下降沿(結(jié)束信號),TIM5CH1_CAPTURE_VAL獲取當(dāng)前CNT的值,也即CCRx2的值

    再看主函數(shù)中:

    while(1) 
    {
      /* 成功捕獲到了一次高電平 (1000 0000) */
      if(TIM5CH1_CAPTURE_STA&0X80)    
      {
        temp=TIM5CH1_CAPTURE_STA&0X3F; /* 獲取溢出的次數(shù)N (0011 1111) */
        temp*=0XFFFFFFFF;   /* 溢出時(shí)間總和 = N*溢出計(jì)數(shù)值 */
        temp+=TIM5CH1_CAPTURE_VAL; /* 總的高電平時(shí)間 = 溢出時(shí)間總和 + 下降沿時(shí)的計(jì)數(shù)值*/
    
        printf("HIGH:%lld us\r\n",temp); //打印總的高點(diǎn)平時(shí)間
        TIM5CH1_CAPTURE_STA=0;  //開啟下一次捕獲
      }
    }

    當(dāng)檢查TIM5CH1_CAPTURE_STA為捕獲到1次高電平后,打印高電平的持續(xù)時(shí)間:

    • 總的高電平時(shí)間 =N(TIM5CH1_CAPTURE_STA的低6位) * ARR(溢出計(jì)數(shù)值)+ CCRx2(下降沿時(shí)的計(jì)數(shù)值)

     

     

    附:一些寄存器簡寫的全稱

    • ARR:auto-reload register 自動(dòng)重載寄存器

    • CCR:capture/compare register 捕獲/比較寄存器

    • PSC:prescaler 預(yù)分頻器

    • CNT:counter 計(jì)數(shù)器

    • SR:status register 狀態(tài)寄存器

    • CCMR:capture/compare mode register 捕獲/比較模式寄存器

      • CC1S:Capture/Compare 1 selection 捕獲/比較1模式選擇

      • OC1M: Output compare 1 mode 輸出比較1模式

      • OC1PE:Output compare 1 preload enable 輸出比較1預(yù)裝載使能

      • IC1F:Input capture 1 filter 輸入捕獲1濾波器

      • IC1PSC:Input capture 1 prescaler 輸入捕獲1預(yù)分頻器

    • CCER:capture/compare enable register 捕獲/比較使能寄存器

      • CC1P:Capture/Comparex output Polarity 捕獲 /比較1輸出極性

      • CC1E:Capture/Comparex output enable 捕獲 /比較1輸出使能

    • SMCR:slave mode control register 從模式控制寄存器

    • DCR:DMA control register DMA 控制寄存器

    • DIER:DMA/Interrupt enable register DMA/中斷使能寄存器

    • DMAR:DMA address for full transfer 全傳輸 DMA 地址

    • OR:option register 選項(xiàng)寄存器


  • ·上一篇:
    ·下一篇:
  • 其他關(guān)聯(lián)資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機(jī):131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 www.qingjujia.cn 電話:13113000010 粵ICP備2021111333號
    主站蜘蛛池模板: 欧美伦理三级在线播放影院 | 丝袜乱小说 | 国产精品手机网站 | 在线免费观看91 | 免费一级毛片在线播放傲雪网 | 人人爱爱人人 | 三级a毛片 | 一区二区三区免费在线 | 青草青在线 | 中文字幕15页 | 青青视频免费 | 国产成人久久综合热 | 久久久久久久久久免免费精品 | 国产大学生自拍视频 | 中日韩中文字幕 | 色综合网亚洲精品久久久 | 欧美成人艳星在线播放 | 久草手机视频在线观看 | 一级毛片高清大全免费观看 | 99久久er热在这里只有精品16 | 天天看天天射天天碰 | 亚洲绝美精品一区二区 | 亚洲精品在线网 | 国产精品视频区 | 日韩视频一区二区 | 在线黄色观看 | 亚洲欧美视频一区二区 | 日韩免费a级在线观看 | 日本免费黄色网 | 国产欧美日韩不卡一区二区三区 | 久草新免费 | 在线网站你懂得 | 成人精品一区二区户外勾搭野战 | 韩国欧美一级毛片 | 精品久久香蕉国产线看观看亚洲 | 国产97视频在线观看 | 在线观看欧美三级 | 国产色婷婷视频在线观看 | 久久成人精品视频 | 国产欧美日韩不卡在线播放在线 | 91精品国产爱久久久久久 |