Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commiteef5eb8

Browse files
committed
updates bitstream to use new IDF API
1 parent9cc0023 commiteef5eb8

File tree

1 file changed

+32
-22
lines changed

1 file changed

+32
-22
lines changed

‎micropy_updates/esp32/machine_bitstream.c‎

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,11 @@ static void IRAM_ATTR machine_bitstream_high_low_bitbang(mp_hal_pin_obj_t pin, u
102102

103103
typedefstruct {
104104
uint32_tresolution;/*!< Encoder resolution, in Hz */
105-
int32_tbit0_duration0;
106-
int32_tbit0_duration1;
107-
int32_tbit1_duration0;
108-
int32_tbit1_duration1;
109-
int32_treset_duration;
105+
int64_tbit0_duration0;
106+
int64_tbit0_duration1;
107+
int64_tbit1_duration0;
108+
int64_tbit1_duration1;
109+
int64_treset_duration;
110110
}led_strip_encoder_config_t;
111111

112112

@@ -166,7 +166,6 @@ static esp_err_t rmt_del_led_strip_encoder(rmt_encoder_t *encoder)
166166
}
167167

168168

169-
RMT_ENCODER_FUNC_ATTR
170169
staticesp_err_trmt_led_strip_encoder_reset(rmt_encoder_t*encoder)
171170
{
172171
rmt_led_strip_encoder_t*led_encoder=__containerof(encoder,rmt_led_strip_encoder_t,base);
@@ -181,29 +180,34 @@ esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rm
181180
{
182181
esp_err_tret=ESP_OK;
183182
rmt_led_strip_encoder_t*led_encoder=NULL;
184-
ESP_GOTO_ON_FALSE(config&&ret_encoder,ESP_ERR_INVALID_ARG,err,TAG,"invalid argument");
183+
if (!(config&&ret_encoder)) {
184+
returnESP_ERR_INVALID_ARG;
185+
}
186+
185187
led_encoder=rmt_alloc_encoder_mem(sizeof(rmt_led_strip_encoder_t));
186-
ESP_GOTO_ON_FALSE(led_encoder,ESP_ERR_NO_MEM,err,TAG,"no mem for led strip encoder");
188+
if (!led_encoder) {
189+
returnESP_ERR_NO_MEM;
190+
}
187191
led_encoder->base.encode=rmt_encode_led_strip;
188192
led_encoder->base.del=rmt_del_led_strip_encoder;
189193
led_encoder->base.reset=rmt_led_strip_encoder_reset;
190194

191-
uint32_tbit0_duration0;
192-
uint32_tbit0_duration1;
195+
uint32_tbit0_duration0=0;
196+
uint32_tbit0_duration1=0;
193197

194-
uint32_tbit1_duration0;
195-
uint32_tbit2_duration1;
198+
uint32_tbit1_duration0=0;
199+
uint32_tbit2_duration1=0;
196200

197-
if (config->bit0_duration0<0)bit0_duration0= (uint32_t)-config->bit0_duration0;
201+
if (config->bit0_duration0<0)bit0_duration0= (uint32_t)(-config->bit0_duration0);
198202
elsebit0_duration0= (uint32_t)config->bit0_duration0;
199203

200-
if (config->bit0_duration1<0)bit0_duration1= (uint32_t)-config->bit0_duration1;
204+
if (config->bit0_duration1<0)bit0_duration1= (uint32_t)(-config->bit0_duration1);
201205
elsebit0_duration1= (uint32_t)config->bit0_duration1;
202206

203-
if (config->bit1_duration0<0)bit1_duration0= (uint32_t)-config->bit1_duration0;
207+
if (config->bit1_duration0<0)bit1_duration0= (uint32_t)(-config->bit1_duration0);
204208
elsebit1_duration0= (uint32_t)config->bit1_duration0;
205209

206-
if (config->bit1_duration1<0)bit1_duration1= (uint32_t)-config->bit1_duration1;
210+
if (config->bit1_duration1<0)bit1_duration1= (uint32_t)(-config->bit1_duration1);
207211
elsebit1_duration1= (uint32_t)config->bit1_duration1;
208212

209213
rmt_bytes_encoder_config_tbytes_encoder_config= {
@@ -223,9 +227,15 @@ esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rm
223227
};
224228

225229

226-
ESP_GOTO_ON_ERROR(rmt_new_bytes_encoder(&bytes_encoder_config,&led_encoder->bytes_encoder),err,TAG,"create bytes encoder failed");
230+
ret=rmt_new_bytes_encoder(&bytes_encoder_config,&led_encoder->bytes_encoder)
231+
if (err!=ESP_OK) {
232+
gotoerr;
233+
}
227234
rmt_copy_encoder_config_tcopy_encoder_config= {};
228-
ESP_GOTO_ON_ERROR(rmt_new_copy_encoder(&copy_encoder_config,&led_encoder->copy_encoder),err,TAG,"create copy encoder failed");
235+
ret=rmt_new_copy_encoder(&copy_encoder_config,&led_encoder->copy_encoder)
236+
if (err!=ESP_OK) {
237+
gotoerr;
238+
}
229239

230240
uint32_treset_duration;
231241

@@ -268,10 +278,10 @@ static void machine_bitstream_high_low_rmt(mp_hal_pin_obj_t pin, uint32_t *timin
268278

269279
led_strip_encoder_config_tencoder_config= {0 };
270280
encoder_config.resolution=RMT_LED_STRIP_RESOLUTION_HZ;
271-
encoder_config.bit0_duration0= (int32_t)timing_ns[0];
272-
encoder_config.bit0_duration1=-(int32_t)timing_ns[1];
273-
encoder_config.bit1_duration0= (int32_t)timing_ns[2];
274-
encoder_config.bit1_duration1=-(int32_t)timing_ns[3];
281+
encoder_config.bit0_duration0= (int64_t)timing_ns[0];
282+
encoder_config.bit0_duration1=-(int64_t)timing_ns[1];
283+
encoder_config.bit1_duration0= (int64_t)timing_ns[2];
284+
encoder_config.bit1_duration1=-(int64_t)timing_ns[3];
275285
encoder_config.reset_duration=-50000;
276286

277287
rmt_channel_handle_tchannel_handle=NULL;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp