summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFriedrich Beckmann <friedrich.beckmann@gmx.de>2025-06-01 15:45:33 +0200
committerFriedrich Beckmann <friedrich.beckmann@gmx.de>2025-06-01 15:45:33 +0200
commit938be013365a9151557b9c4c133d61e697b3a5cc (patch)
tree4c51acd0b63c7d40ebe76b53ee7cda908206cbfa /src
parent1344cc0ac7e088bafff86d49570c13ef3c455fcc (diff)
moved project to blinky
Diffstat (limited to 'src')
-rw-r--r--src/main.rs112
1 files changed, 0 insertions, 112 deletions
diff --git a/src/main.rs b/src/main.rs
deleted file mode 100644
index c027b11..0000000
--- a/src/main.rs
+++ /dev/null
@@ -1,112 +0,0 @@
-//! # Pico Blinky Example
-//!
-//! Blinks the LED on a Pico board.
-//!
-//! This will blink an LED attached to GP25, which is the pin the Pico uses for
-//! the on-board LED.
-//!
-//! See the `Cargo.toml` file for Copyright and license details.
-
-#![no_std]
-#![no_main]
-
-// The macro for our start-up function
-use rp_pico::entry;
-
-// GPIO traits
-use embedded_hal::digital::OutputPin;
-
-// Ensure we halt the program on panic (if we don't mention this crate it won't
-// be linked)
-use panic_halt as _;
-
-// Pull in any important traits
-use rp_pico::hal::prelude::*;
-
-// A shorter alias for the Peripheral Access Crate, which provides low-level
-// register access
-use rp_pico::hal::pac;
-
-// A shorter alias for the Hardware Abstraction Layer, which provides
-// higher-level drivers.
-use rp_pico::hal;
-
-fn is_prime (a : u64) -> bool {
- if a % 2 == 0 {return false};
- for i in (3..a.isqrt()).step_by(2) {
- if a % i == 0 {
- return false;
- }
- }
- return true;
-}
-
-fn find_next_smaller_prime(mut x : u64) -> u64 {
- if x <= 1 {return x};
- if x % 2 == 0 {x=x-1};
- while !is_prime(x) {x = x - 2};
- return x;
-}
-
-/// Entry point to our bare-metal application.
-///
-/// The `#[entry]` macro ensures the Cortex-M start-up code calls this function
-/// as soon as all global variables are initialised.
-///
-/// The function configures the RP2040 peripherals, then blinks the LED in an
-/// infinite loop.
-#[entry]
-fn main() -> ! {
- // Grab our singleton objects
- let mut pac = pac::Peripherals::take().unwrap();
- let core = pac::CorePeripherals::take().unwrap();
-
- // Set up the watchdog driver - needed by the clock setup code
- let mut watchdog = hal::Watchdog::new(pac.WATCHDOG);
-
- // Configure the clocks
- //
- // The default is to generate a 125 MHz system clock
- let clocks = hal::clocks::init_clocks_and_plls(
- rp_pico::XOSC_CRYSTAL_FREQ,
- pac.XOSC,
- pac.CLOCKS,
- pac.PLL_SYS,
- pac.PLL_USB,
- &mut pac.RESETS,
- &mut watchdog,
- )
- .ok()
- .unwrap();
-
- // The delay object lets us wait for specified amounts of time (in
- // milliseconds)
- let mut delay = cortex_m::delay::Delay::new(core.SYST, clocks.system_clock.freq().to_Hz());
-
- // The single-cycle I/O block controls our GPIO pins
- let sio = hal::Sio::new(pac.SIO);
-
- // Set the pins up according to their function on this particular board
- let pins = rp_pico::Pins::new(
- pac.IO_BANK0,
- pac.PADS_BANK0,
- sio.gpio_bank0,
- &mut pac.RESETS,
- );
-
- // Set the LED to be an output
- let mut led_pin = pins.led.into_push_pull_output();
-
- // Blink the LED at 1 Hz
- loop {
- led_pin.set_high().unwrap();
- delay.delay_ms(500);
- if find_next_smaller_prime(1<<36) > 5 {
- led_pin.set_high().unwrap();
- }
- led_pin.set_low().unwrap();
- delay.delay_ms(500);
- }
-}
-
-// End of file \ No newline at end of file