@@ -273,27 +273,33 @@ void noTone(pin_size_t pinNumber) {
273
273
gpio_pin_set_dt (spec, 0 );
274
274
}
275
275
276
- void delay (unsigned long ms) { k_sleep (K_MSEC (ms)); }
276
+ void delay (unsigned long ms) {
277
+ k_sleep (K_MSEC (ms));
278
+ }
277
279
278
- void delayMicroseconds (unsigned int us) { k_sleep (K_USEC (us)); }
280
+ void delayMicroseconds (unsigned int us) {
281
+ k_busy_wait (us);
282
+ }
279
283
280
284
unsigned long micros (void ) {
281
285
return k_cyc_to_us_floor32 (k_cycle_get_32 ());
282
286
}
283
287
284
- unsigned long millis (void ) { return k_uptime_get_32 (); }
288
+ unsigned long millis (void ) {
289
+ return k_uptime_get_32 ();
290
+ }
285
291
286
292
#ifdef CONFIG_PWM
287
293
288
294
void analogWrite (pin_size_t pinNumber, int value)
289
295
{
290
296
size_t idx = pwm_pin_index (pinNumber);
291
297
292
- if (! pwm_is_ready_dt (& arduino_pwm[idx] )) {
298
+ if (idx >= ARRAY_SIZE ( arduino_pwm)) {
293
299
return ;
294
300
}
295
301
296
- if (idx >= ARRAY_SIZE ( arduino_pwm) ) {
302
+ if (! pwm_is_ready_dt (& arduino_pwm[idx]) ) {
297
303
return ;
298
304
}
299
305
@@ -423,8 +429,6 @@ long random(long max) {
423
429
424
430
#endif
425
431
426
- #ifdef CONFIG_GPIO_GET_DIRECTION
427
-
428
432
unsigned long pulseIn (pin_size_t pinNumber, uint8_t state, unsigned long timeout) {
429
433
struct k_timer timer;
430
434
int64_t start, end, delta = 0 ;
@@ -437,10 +441,6 @@ unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout
437
441
goto cleanup;
438
442
}
439
443
440
- if (!gpio_pin_is_input_dt (spec)) {
441
- goto cleanup;
442
- }
443
-
444
444
while (gpio_pin_get_dt (spec) == state && k_timer_status_get (&timer) == 0 );
445
445
if (k_timer_status_get (&timer) > 0 ) {
446
446
goto cleanup;
@@ -465,8 +465,6 @@ unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout
465
465
return (unsigned long )delta;
466
466
}
467
467
468
- #endif // CONFIG_GPIO_GET_DIRECTION
469
-
470
468
void enableInterrupt (pin_size_t pinNumber) {
471
469
struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[pinNumber].port );
472
470
0 commit comments