Explorer base improvements (#363)

* Improve comments

* Expose pins and all pins naming struct.

This allows users to set the interrupts on the button pins and to skip the PicoExplorer struct but still use proper naming

* Use correct interrupt names in timer::alarms macro in HAL
This commit is contained in:
Hmvp 2022-06-23 09:19:32 +00:00 committed by GitHub
parent 6ae0698b7a
commit 0f114677d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 11 deletions

View file

@ -193,7 +193,7 @@ RP2040 chip according to how it is connected up on the Trinkey.
### [pimoroni-pico-explorer] - Board Support for the [Pimoroni Pico Explorer]
You should include this crate if you are writing code that you want to run on
a [Pimoroni Pico Explorer] - a board featuring a small LCD screen, a
a [Pimoroni Pico Explorer] - a breakout board for the [Raspberry Pi Pico] featuring a small LCD screen, a
breadboard and some breakout headers.
This crate includes the [rp2040-hal], but also configures each pin of the

View file

@ -10,6 +10,9 @@ pub use hal::entry;
/// The linker will place this boot block at the start of our program image. We
/// need this to help the ROM bootloader get our code up and running.
///
/// This currently assumes an rp-pico or pimoroni-pico-lipo is used as the brains.
/// Currently those are the only boards that have the right pin out to be able to be used
#[cfg(feature = "boot2")]
#[link_section = ".boot2"]
#[no_mangle]
@ -45,7 +48,7 @@ use hal::{
};
use st7789::ST7789;
mod internal_pins {
pub mod all_pins {
hal::bsp_pins!(
Gpio0 { name: gpio0 },
Gpio1 { name: gpio1 },
@ -112,6 +115,7 @@ mod internal_pins {
);
}
// Can't use `hal::bsp_pins!` here because some pins are not set to their reset state
pub struct Pins {
pub gpio0: Pin<Gpio0, <Gpio0 as PinId>::Reset>,
pub gpio1: Pin<Gpio1, <Gpio1 as PinId>::Reset>,
@ -160,10 +164,10 @@ pub type Screen = ST7789<
>;
pub struct PicoExplorer {
a: Pin<Gpio12, PullUpInput>,
b: Pin<Gpio13, PullUpInput>,
x: Pin<Gpio14, PullUpInput>,
y: Pin<Gpio15, PullUpInput>,
pub a: Pin<Gpio12, PullUpInput>,
pub b: Pin<Gpio13, PullUpInput>,
pub x: Pin<Gpio14, PullUpInput>,
pub y: Pin<Gpio15, PullUpInput>,
adc: Adc,
pub screen: Screen,
}
@ -190,7 +194,7 @@ impl PicoExplorer {
resets: &mut RESETS,
delay: &mut impl DelayUs<u32>,
) -> (Self, Pins) {
let internal_pins = internal_pins::Pins::new(io, pads, sio, resets);
let internal_pins = all_pins::Pins::new(io, pads, sio, resets);
let a = internal_pins.switch_a.into_pull_up_input();
let b = internal_pins.switch_b.into_pull_up_input();

View file

@ -288,27 +288,27 @@ pub enum ScheduleAlarmError {
impl_alarm!(Alarm0 {
rb: alarm0,
int: alarm_0,
int_name: "IRQ_TIMER_0",
int_name: "TIMER_IRQ_0",
armed_bit_mask: 0b0001
});
impl_alarm!(Alarm1 {
rb: alarm1,
int: alarm_1,
int_name: "IRQ_TIMER_1",
int_name: "TIMER_IRQ_1",
armed_bit_mask: 0b0010
});
impl_alarm!(Alarm2 {
rb: alarm2,
int: alarm_2,
int_name: "IRQ_TIMER_2",
int_name: "TIMER_IRQ_2",
armed_bit_mask: 0b0100
});
impl_alarm!(Alarm3 {
rb: alarm3,
int: alarm_3,
int_name: "IRQ_TIMER_3",
int_name: "TIMER_IRQ_3",
armed_bit_mask: 0b1000
});