Add BME280 humidity sensor test
[lpc82x] / drivers / adc.c
index bae9d88..1306d68 100644 (file)
@@ -61,12 +61,12 @@ void ADC_OVR_Handler(void) __attribute__ ((alias ("ADC_Handler")));
  * Retuen 1 if the value is an old one
  * Return 2 if an overrun occured
  */
-int adc_get_value(uint16_t * val, unsigned int channel)
+int adc_get_value(uint16_t * val, uint8_t channel)
 {
        struct lpc_adc* adc = LPC_ADC;
        uint32_t save_reg = 0;
 
-       if (channel > NB_ADC_CHANNELS)
+       if (channel >= NB_ADC_CHANNELS)
                return -1;
 
        /* Save the whole register as some bits are cleared when register is read */
@@ -83,7 +83,7 @@ int adc_get_value(uint16_t * val, unsigned int channel)
 }
 
 /* Start a conversion on the given channel (0 to 7) */
-void adc_start_convertion_once(unsigned int channel, uint8_t seq_num, int use_int)
+void adc_start_convertion_once(uint8_t channel, uint8_t seq_num, uint8_t use_int)
 {
        struct lpc_adc* adc = LPC_ADC;
        uint32_t reg_val = 0;
@@ -155,7 +155,7 @@ void adc_stop_burst_conversion(uint8_t seq_num)
  * some signals, or on timer for burst conversions.
  */
 void adc_prepare_conversion_on_event(uint16_t channels, uint8_t event, uint8_t seq_num,
-                                                                               int use_int, uint32_t mode)
+                                                                               uint8_t use_int, uint32_t mode)
 {
        struct lpc_adc* adc = LPC_ADC;
        uint32_t reg_val = 0;
@@ -284,6 +284,8 @@ void adc_off(void)
        NVIC_DisableIRQ(ADC_SEQB_IRQ);
        NVIC_DisableIRQ(ADC_THCMP_IRQ);
        NVIC_DisableIRQ(ADC_OVR_IRQ);
+       /* Remove callback */
+       adc_int_callback = NULL;
        /* Power Down ADC */
        sys_config->powerdown_run_cfg |= LPC_POWER_DOWN_ADC;
        /* Remove clock from ADC block */