File tree Expand file tree Collapse file tree
ports/espressif/common-hal/pulseio Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -41,7 +41,12 @@ STATIC void update_internal_buffer(pulseio_pulsein_obj_t *self) {
4141 length /= 4 ;
4242 for (size_t i = 0 ; i < length ; i ++ ) {
4343 uint16_t pos = (self -> start + self -> len ) % self -> maxlen ;
44- self -> buffer [pos ] = items [i ].duration0 * 3 ;
44+ uint32_t val = items [i ].duration0 * 3 ;
45+ // make sure the value returned does not exceed the max uint16 value.
46+ if (val > 65535 ) {
47+ val = 65535 ;
48+ }
49+ self -> buffer [pos ] = (uint16_t )val ;
4550 if (self -> len < self -> maxlen ) {
4651 self -> len ++ ;
4752 } else {
@@ -50,7 +55,11 @@ STATIC void update_internal_buffer(pulseio_pulsein_obj_t *self) {
5055 // Check if second item exists
5156 if (items [i ].duration1 ) {
5257 pos = (self -> start + self -> len ) % self -> maxlen ;
53- self -> buffer [pos ] = items [i ].duration1 * 3 ;
58+ val = items [i ].duration1 * 3 ;
59+ if (val > 65535 ) {
60+ val = 65535 ;
61+ }
62+ self -> buffer [pos ] = (uint16_t )val ;
5463 if (self -> len < self -> maxlen ) {
5564 self -> len ++ ;
5665 } else {
You can’t perform that action at this time.
0 commit comments