Skip to content

Use embedded-hal 1.0 in tests and examples#436

Merged
qwandor merged 2 commits intomasterfrom
embedded-hal-examples
Mar 10, 2024
Merged

Use embedded-hal 1.0 in tests and examples#436
qwandor merged 2 commits intomasterfrom
embedded-hal-examples

Conversation

@qwandor
Copy link
Copy Markdown
Member

@qwandor qwandor commented Mar 6, 2024

No description provided.

@qwandor qwandor requested a review from BartMassey March 6, 2024 18:27
@qwandor qwandor force-pushed the embedded-hal-examples branch from a35a228 to 2677ab1 Compare March 6, 2024 18:31
@qwandor qwandor force-pushed the embedded-hal-examples branch from 2677ab1 to 93ee789 Compare March 6, 2024 18:56
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you comment on the change here?

The change from:

use embedded_hal::blocking::spi::Write;

to:

use embedded_hal::spi::SpiBus;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SPI traits changed significantly in embedded-hal 1.0. You can read more about it in the embedded-hal documentation, but one difference is that there is now a single trait for a bus or a device, rather than separate traits for read vs. write vs. transfer.

Copy link
Copy Markdown

@adamhott adamhott Mar 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please comment on the change of the use of timer and PWM?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about it? embedded-hal 1.0 no longer includes traits for timers, so we have intrinsic methods instead. The names of some of the PWM methods have changed.

Copy link
Copy Markdown

@adamhott adamhott Mar 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line 46: Can you please comment on the change to make pulldown_pin mutuable?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

embedded_hal::digital::InputPin::is_low takes &mut self, so it needs to be mutable for the call on line 49.

Copy link
Copy Markdown

@adamhott adamhott Mar 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line 53-54: Can you please comment on the change made from:

(state.input_pin.as_ref().unwrap().is_low().unwrap());

to:

(state.input_pin.as_mut().unwrap().is_low().unwrap());

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, embedded_hal::digital::InputPin::is_low takes &mut self, so we need a mutable reference.

Copy link
Copy Markdown

@adamhott adamhott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Responses to comments are reasonable as are code changes. Tested on micro:bit V2, ran into some limitations with certain examples being built for other nrf hals for other chips. Overall, looks great! Approved!

@qwandor qwandor merged commit 4730554 into master Mar 10, 2024
@qwandor qwandor deleted the embedded-hal-examples branch March 10, 2024 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants