求助:ADC的实际转换时间
S3C2440的开发板,内核2.6.32自带的ADC驱动。
static ssize_t s3c2410_adc_read(struct file *filp, char *buffer, size_t count, loff_t *ppos){ char str[20]; int value; struct timeval tstart,tend; //添加 size_t len; do_gettimeofday(&tstart); //添加 if (down_trylock(&ADC_LOCK) == 0) { OwnADC = 1; START_ADC_AIN(adcdev.channel, adcdev.prescale); wait_event_interruptible(adcdev.wait, ev_adc); ev_adc = 0; //while(!(ADCCON & ADC_ENDCVT)); //adc_data = ADCDAT0 & 0x3ff;// value = adc_data; OwnADC = 0; up(&ADC_LOCK); } else { value = -1; } do_gettimeofday(&tend); //添加 printk("AD time: %ld us value:%d \n", (tend.tv_usec-tstart.tv_usec),value); //添加 len = sprintf(str, "%d\n", value); if (count >= len) { int r; r = copy_to_user(buffer, str, len); return r ? r : len; } else { return -EINVAL; }}