add adc function