1

如果我以 500 毫秒从压力传感器读取模拟信号。我的导师告诉我,您应该使 ADC Timr0 中断是您从模拟示波器(500 毫秒)读取的两倍。即 2fc。我的代码在下面。我应该将 timer0 配置为 20Hz 或更低或更高吗?

enter code here
     char temp[5];

    unsigned int adc_value;

     char uart_rd;
      int i;
       unsigned int d[10]={0};
      int average = 0;
       int counter =0;


    void interrupt(){
         if (INTCON.T0IF) {
          INTCON.T0IF = 0 ;// clear T0IF (Timer interrupt flag).
     }
    TMR0 = 178;

  }

     void main() {

      temp[0]='1';
       temp[1]='2';
       temp[2]='3';
        temp[3]='4';
          temp[4]=' ';
     OSCCON= 0x77;        //8MHz
       ANSEL = 0b00000100;      //ANS2  
       CMCON0 = 0X07;  //
       TRISA = 0b00001100;
        UART1_Init(9600);               
        TMR0 = 178 ;
       //CMCON0 = 0X04; // turn off compartor.
      OPTION_REG = 0x87;   //
     INTCON =0xA0;
        while(1){
            average= ADC_Read(2);
            temp[0] = average/1000+48;
             temp[1] = (average/100)%10+48;
             temp[2] = (average/10)%10+48;
              temp[3] = average%10+48;
            for (i=0;i<5; i++)
                  {
                UART1_Write(temp[i]);
             }
      }

 }
4

1 回答 1

0

当对信号进行预采样时,您不会捕获所有信息,而只是在给定的采样周期内捕获部分信息。

Nyquist-Shannon 采样定理声称,如果您可以在某个给定频率以上进行实际采样,您可以获得信号有限带宽的所有信息。该频率是该带宽的最大频率的两倍。

如果您不遵守该频率,您将遭受称为混叠的影响。

您可以在此处了解更多信息:https ://en.wikipedia.org/wiki/Aliasing

于 2016-01-11T23:52:35.947 回答