<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > avr單片機模擬比較器初始化配置及說明

          avr單片機模擬比較器初始化配置及說明

          作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          avr模擬比較器對正極 AIN0 的值與負極 AIN1 的值進行比較。當 AIN0 上的電壓比負極 AIN1

          上的電壓要高時,模擬比較器的輸出 ACO 即置位。比較器的輸出可用來觸發(fā)定時器 / 計
          數(shù)器 1 的輸入捕捉功能。此外,比較器還可觸發(fā)自己專有的、獨立的中斷。用戶可以選擇
          比較器是以上升沿、下降沿還是交替變化的邊沿來觸發(fā)中斷。
          /*

          特殊功能 IO 寄存器- SFIOR

          本文引用地址:http://www.ex-cimer.com/article/201611/315765.htm

          7 6 5 4 3 2 1 0
          ADTS2 ADTS1 ADTS0 – ACME PUD PSR2 PSR10

          Bit 3 – ACME: 模擬比較器多路復(fù)用器使能

          當此位為邏輯 "1” ,且ADC 處于關(guān)閉狀態(tài) (ADCSRA 寄存器的 ADEN 為 "0”) 時,ADC 多
          路復(fù)用器為模擬比較器選擇負極輸入。當此位為 "0” 時, AIN1 連接到比較器的負極輸入
          端。


          模擬比較器控制和狀態(tài)寄存器-ACSR
          7 6 5 4 3 2 1 0

          ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0
          Bit 7 – ACD: 模擬比較器禁用
          ACD 置位時,模擬比較器的電源被切斷??梢栽谌魏螘r候設(shè)置此位來關(guān)掉模擬比較器。這
          可以減少器件工作模式及空閑模式下的功耗。改變 ACD 位時,必須清零 ACSR 寄存器的
          ACIE 位來禁止模擬比較器中斷。否則 ACD 改變時可能會產(chǎn)生中斷。

          Bit 6 – ACBG: 選擇模擬比較器的能隙基準源
          ACBG 置位后,模擬比較器的正極輸入由能隙基準源所取代。否則,AIN0 連接到模擬比
          較器的正極輸入。見 P40 “ 片內(nèi)基準電壓 ” 。

          Bit 5 – ACO: 模擬比較器輸出
          模擬比較器的輸出經(jīng)過同步后直接連到 ACO。同步機制引入了 1-2 個時鐘周期的延時。

          Bit 4 – ACI: 模擬比較器中斷標志
          當比較器的輸出事件觸發(fā)了由ACIS1 及 ACIS0 定義的中斷模式時,ACI 置位。如果 ACIE
          和 SREG 寄存器的全局中斷標志 I 也置位,那么模擬比較器中斷服務(wù)程序即得以執(zhí)行,同
          時 ACI 被硬件清零。 ACI 也可以通過寫 "1” 來清零。

          Bit 3 – ACIE: 模擬比較器中斷使能
          當 ACIE 位被置 "1” 且狀態(tài)寄存器中的全局中斷標志 I 也被置位時,模擬比較器中斷被激
          活。否則中斷被禁止。

          Bit 2 – ACIC: 模擬比較器輸入捕捉使能
          ACIC 置位后允許通過模擬比較器來觸發(fā)T/C1 的輸入捕捉功能。此時比較器的輸出被直接
          連接到輸入捕捉的前端邏輯,從而使得比較器可以利用 T/C1 輸入捕捉中斷邏輯的噪聲抑
          制器及觸發(fā)沿選擇功能。 ACIC 為 "0” 時模擬比較器及輸入捕捉功能之間沒有任何聯(lián)系。
          為了使比較器可以觸發(fā) T/C1 的輸入捕捉中斷,定時器中斷屏蔽寄存器 TIMSK 的 TICIE1
          必須置位。

          Bits 1, 0 – ACIS1, ACIS0: 模擬比較器中斷模式選擇
          這兩位確定觸發(fā)模擬比較器中斷的事件。

          ACIS1/ACIS0 設(shè)置

          ACIS1 ACIS0 中斷模式
          0 0 比較器輸出變化即可觸發(fā)中斷
          0 1 保留
          1 0 比較器輸出的下降沿產(chǎn)生中斷
          1 1 比較器輸出的上升沿產(chǎn)生中斷

          需要改變 ACIS1/ACIS0 時,必須清零 ACSR 寄存器的中斷使能位來禁止模擬比較器中
          斷。否則有可能在改變這兩位時產(chǎn)生中斷。


          模擬比較器多工輸入
          可以選擇 ADC7..0 之中的任意一個來代替模擬比較器的負極輸入端。ADC 復(fù)用器可用來
          完成這個功能。當然,為了使用這個功能首先必須關(guān)掉 ADC。如果模擬比較器復(fù)用器使
          能位 (SFIOR 中的ACME) 被置位,且 ADC 也已經(jīng)關(guān)掉 (ADCSRA 寄存器的ADEN 為 0) ,
          則可以通過 ADMUX 寄存器的 MUX2..0 來選擇替代模擬比較器負極輸入的管腳,
          如果 ACME 清零或 ADEN 置位,則模擬比較器的負極輸入為 AIN1。

          模擬比較器復(fù)用輸入
          ACME ADEN MUX2..0 模擬比較器負極輸入
          0 x xxx AIN1
          1 1 xxx AIN1
          1 0 000 ADC0
          1 0 001 ADC1
          1 0 010 ADC2
          1 0 011 ADC3
          1 0 100 ADC4
          1 0 101 ADC5
          1 0 110 ADC6
          1 0 111 ADC7

          */
          #include
          #include
          #pragma interrupt_handler ANA_COMP_inter:iv_ANA_COMP
          #pragma interrupt_handler Timer1_CAPT:iv_TIMER1_CAPT
          unsigned int ANA_COMP_fun=0;
          unsigned int T1_CAPT=0;
          void T1_capt_init(void)
          {
          TCNT1=500;//可以賦值,也可以不用。默認是0
          TCCR1A=0x00; //普通端口操作
          TCCR1B|=0X04;//TCCR1B=0X03;256分頻.
          TCCR1B|=0x80;//ICNC1:1使能噪聲捕捉功能
          TCCR1B|=1<TIMSK|=0x20; //T1事件捕捉中斷使能
          }


          void ANA_COMP_init(unsigned char mode,unsigned char ANI1_select)
          {
          //SFIOR|=1
          switch(mode)
          {
          case 0:ACSR&=~((1if(ANI1_select)//如果ANI1_select=0,默認的是模擬比較器的負極輸入端
          {
          switch(ANI1_select)
          {
          case 1:SFIOR|=1}

          T1_capt_init();
          // 如果要用到邊沿觸發(fā)功能,就用用到T/C1 的輸入捕捉功能中的觸發(fā)沿選擇功能
          //如果不用邊沿觸發(fā)功能,也不用T/C1 的輸入捕捉功能,一下兩行不用,就屏蔽掉吧。
          ACSR|=1
          }


          SREG|=0x80; //開放全局中斷
          }

          void ANA_COMP_inter()
          {
          ANA_COMP_fun++;

          }
          void Timer1_CAPT()
          {
          T1_CAPT=ICR1;
          }



          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();