1.修复adc不刷新问题

This commit is contained in:
payton 2023-12-08 14:40:05 +08:00
parent b26ce942c4
commit 15a9725668
2 changed files with 39 additions and 24 deletions

View File

@ -124,8 +124,12 @@ static UINT32 adc_mid3_first = 0; // mid2 first read ready
static u32 adc_base = 0; static u32 adc_base = 0;
static UINT32 adc_trim = 0; static UINT32 adc_trim = 0;
/*
static UINT32 adc_avg_times = 50; static UINT32 adc_avg_times = 50;
static UINT32 filter = 3 ; static UINT32 filter = 3 ;
*/
static UINT32 adc_avg_times = 1; /* nerver avg */
static UINT32 avg_sel = 3; static UINT32 avg_sel = 3;
static UINT32 avg_sel_sts = 0; static UINT32 avg_sel_sts = 0;
@ -244,7 +248,8 @@ static void nvt_adc_read_avg(struct work_struct *work) //(struct nvt_adc_state *
}else { }else {
if( (temp <= (adc_mid + filter)) && (temp >= (adc_mid - filter) ) ){ // if( (temp <= (adc_mid + filter)) && (temp >= (adc_mid - filter) ) ){
if(1){
t_data[t_data_now] = temp; t_data[t_data_now] = temp;
t_data_now++; t_data_now++;
} }
@ -305,7 +310,8 @@ static void nvt_adc_read_avg(struct work_struct *work) //(struct nvt_adc_state *
avg_sel_sts = 0; avg_sel_sts = 0;
} else { } else {
if( (temp <= (adc_mid1 + filter)) && (temp >= (adc_mid1 - filter) ) ){ // if( (temp <= (adc_mid1 + filter)) && (temp >= (adc_mid1 - filter) ) ){
if(1){
t_data1[t_data_now1] = temp; t_data1[t_data_now1] = temp;
t_data_now1++; t_data_now1++;
} }
@ -366,7 +372,8 @@ static void nvt_adc_read_avg(struct work_struct *work) //(struct nvt_adc_state *
avg_sel_sts = 0; avg_sel_sts = 0;
} else { } else {
if( (temp <= (adc_mid2 + filter)) && (temp >= (adc_mid2 - filter) ) ){ // if( (temp <= (adc_mid2 + filter)) && (temp >= (adc_mid2 - filter) ) ){
if(1){
t_data2[t_data_now2] = temp; t_data2[t_data_now2] = temp;
t_data_now2++; t_data_now2++;
} }
@ -427,7 +434,8 @@ static void nvt_adc_read_avg(struct work_struct *work) //(struct nvt_adc_state *
avg_sel_sts = 0; avg_sel_sts = 0;
} else { } else {
if( (temp <= (adc_mid3 + filter)) && (temp >= (adc_mid3 - filter) ) ){ // if( (temp <= (adc_mid3 + filter)) && (temp >= (adc_mid3 - filter) ) ){
if(1){
t_data3[t_data_now3] = temp; t_data3[t_data_now3] = temp;
t_data_now3++; t_data_now3++;
} }
@ -611,9 +619,16 @@ static int nvt_adc_read_raw(struct iio_dev *iio,
case IIO_CHAN_INFO_AVERAGE_RAW: case IIO_CHAN_INFO_AVERAGE_RAW:
if ( avg_sel == 0 ){ if ( avg_sel == 0 ){
*value = adc_mid_vol; *value = adc_mid_vol;
}else{ }
else if ( avg_sel == 1 ){
*value = adc_mid1_vol; *value = adc_mid1_vol;
} }
else if( avg_sel == 2 ){
*value = adc_mid2_vol;
}
else if( avg_sel == 3 ){
*value = adc_mid3_vol;
}
return IIO_VAL_INT; return IIO_VAL_INT;

View File

@ -44,28 +44,28 @@ sleep ${DELAY}
echo 0x5 > /proc/adc echo 0x5 > /proc/adc
cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw
echo 0x3 > /proc/adc echo 0x3 > /proc/adc
sleep ${DELAY} #sleep ${DELAY}
echo 1 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXA}/value #echo 1 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXA}/value
echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXB}/value #echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXB}/value
sleep ${DELAY} #sleep ${DELAY}
cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw #cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw
echo 0x1 > /proc/adc #echo 0x1 > /proc/adc
sleep ${DELAY} #sleep ${DELAY}
echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXA}/value #echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXA}/value
echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXB}/value #echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXB}/value
sleep ${DELAY} #sleep ${DELAY}
cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw #cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw
echo 0x0 > /proc/adc #echo 0x0 > /proc/adc
sleep ${DELAY} #sleep ${DELAY}
echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXA}/value #echo 0 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXA}/value
echo 1 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXB}/value #echo 1 > /sys/devices/gpiochip0/gpio/gpio${SF_ADC_MUXB}/value
sleep ${DELAY} #sleep ${DELAY}
echo 0x2 > /proc/adc #echo 0x2 > /proc/adc
sleep ${DELAY} #sleep ${DELAY}
cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw #cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw
fi fi