@@ -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