@@ -257,27 +257,33 @@ void noTone(pin_size_t pinNumber) {
257257 gpio_pin_set_dt (&arduino_pins[pinNumber], 0 );
258258}
259259
260- void delay (unsigned long ms) { k_sleep (K_MSEC (ms)); }
260+ void delay (unsigned long ms) {
261+ k_sleep (K_MSEC (ms));
262+ }
261263
262- void delayMicroseconds (unsigned int us) { k_sleep (K_USEC (us)); }
264+ void delayMicroseconds (unsigned int us) {
265+ k_busy_wait (us);
266+ }
263267
264268unsigned long micros (void ) {
265269 return k_cyc_to_us_floor32 (k_cycle_get_32 ());
266270}
267271
268- unsigned long millis (void ) { return k_uptime_get_32 (); }
272+ unsigned long millis (void ) {
273+ return k_uptime_get_32 ();
274+ }
269275
270276#ifdef CONFIG_PWM
271277
272278void analogWrite (pin_size_t pinNumber, int value)
273279{
274280 size_t idx = pwm_pin_index (pinNumber);
275281
276- if (! pwm_is_ready_dt (& arduino_pwm[idx] )) {
282+ if (idx >= ARRAY_SIZE ( arduino_pwm)) {
277283 return ;
278284 }
279285
280- if (idx >= ARRAY_SIZE ( arduino_pwm) ) {
286+ if (! pwm_is_ready_dt (& arduino_pwm[idx]) ) {
281287 return ;
282288 }
283289
@@ -407,8 +413,6 @@ long random(long max) {
407413
408414#endif
409415
410- #ifdef CONFIG_GPIO_GET_DIRECTION
411-
412416unsigned long pulseIn (pin_size_t pinNumber, uint8_t state, unsigned long timeout) {
413417 struct k_timer timer;
414418 int64_t start, end, delta = 0 ;
@@ -421,10 +425,6 @@ unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout
421425 goto cleanup;
422426 }
423427
424- if (!gpio_pin_is_input_dt (spec)) {
425- goto cleanup;
426- }
427-
428428 while (gpio_pin_get_dt (spec) == state && k_timer_status_get (&timer) == 0 );
429429 if (k_timer_status_get (&timer) > 0 ) {
430430 goto cleanup;
@@ -449,8 +449,6 @@ unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout
449449 return (unsigned long )delta;
450450}
451451
452- #endif // CONFIG_GPIO_GET_DIRECTION
453-
454452void enableInterrupt (pin_size_t pinNumber) {
455453 struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[pinNumber].port );
456454
0 commit comments