change error reporting for adc_config

This commit is contained in:
Christian Baars 2022-07-02 22:33:31 +02:00
parent a793296bc1
commit e730f43d26
2 changed files with 12 additions and 11 deletions

View File

@ -28,8 +28,8 @@ BE_FUNC_CTYPE_DECLARE(be_ULP_get_mem, "i", "i");
extern int32_t be_ULP_gpio_init(gpio_num_t pin, rtc_gpio_mode_t mode); extern int32_t be_ULP_gpio_init(gpio_num_t pin, rtc_gpio_mode_t mode);
BE_FUNC_CTYPE_DECLARE(be_ULP_gpio_init, "i", "ii"); BE_FUNC_CTYPE_DECLARE(be_ULP_gpio_init, "i", "ii");
extern int32_t be_ULP_adc_config(adc1_channel_t channel, adc_atten_t attenuation, adc_bits_width_t width); extern void be_ULP_adc_config(struct bvm *vm, adc1_channel_t channel, adc_atten_t attenuation, adc_bits_width_t width);
BE_FUNC_CTYPE_DECLARE(be_ULP_adc_config, "i", "iii"); BE_FUNC_CTYPE_DECLARE(be_ULP_adc_config, "", "iii");
extern void be_ULP_sleep(int32_t wake_up_s); extern void be_ULP_sleep(int32_t wake_up_s);
BE_FUNC_CTYPE_DECLARE(be_ULP_sleep, "", "[i]"); // optional int arg BE_FUNC_CTYPE_DECLARE(be_ULP_sleep, "", "[i]"); // optional int arg

View File

@ -67,23 +67,24 @@ extern "C" {
} }
} }
// `ULP.adc_config(channel:int, attenuation:int, width:int) -> err:int` // `ULP.adc_config(channel:int, attenuation:int, width:int) -> nil`
// returns combined error like xxx000yyy, xxx for adc1_config_channel_atten and yyy for adc1_config_width //
// enums: channel 0-7, attenuation 0-3, width 0-3 // enums: channel 0-7, attenuation 0-3, width 0-3
int32_t be_ULP_adc_config(adc1_channel_t channel, adc_atten_t attenuation, adc_bits_width_t width) { void be_ULP_adc_config(struct bvm *vm, adc1_channel_t channel, adc_atten_t attenuation, adc_bits_width_t width) {
esp_err_t err = adc1_config_channel_atten(channel, attenuation) * 1000000; //shift error left esp_err_t err = adc1_config_channel_atten(channel, attenuation);
err += adc1_config_width(width); err += adc1_config_width(width);
if(err==ESP_OK){ if (err != ESP_OK) {
adc1_ulp_enable(); be_raisef(vm, "ulp_adc_config_error", "ULP: invalid code err=%i", err);
} } else {
return err; adc1_ulp_enable();
}
} }
/** /**
* @brief Load a Berry byte buffer containing a ULP program as raw byte data * @brief Load a Berry byte buffer containing a ULP program as raw byte data
* *
* @param vm as `ULP.load(code:bytes) -> nil` * @param vm as `ULP.load(code:bytes) -> nil`
* @return int * @return void
*/ */
void be_ULP_load(struct bvm *vm, const uint8_t *buf, size_t size) { void be_ULP_load(struct bvm *vm, const uint8_t *buf, size_t size) {
// AddLog(LOG_LEVEL_INFO, "ULP: load addr=%p size=%i %*_H", buf, size/4, size, buf); // AddLog(LOG_LEVEL_INFO, "ULP: load addr=%p size=%i %*_H", buf, size/4, size, buf);