[英]Appropriate sample for PIC ADC after converting from analog voltage.
如果我正在以500毫秒的速度從壓力傳感器讀取模擬信號。 我的老師告訴我,應該使ADC Timr0中斷比從模擬示波器(500mSec..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]);
}
}
}
在對信號進行瓶坯采樣時,您沒有捕獲所有信息,而是僅在給定采樣周期內捕獲了一部分信息。
Nyquist–Shannon采樣定理聲稱,如果您可以在某個給定頻率之上進行實際采樣,則可以獲得信號有限帶寬的所有信息。 該頻率是該帶寬的最大頻率的兩倍。
如果您不遵守該頻率,則會遭受稱為鋸齒的影響。
您可以在此處了解更多信息: https : //en.wikipedia.org/wiki/Aliasing
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.