From 938be013365a9151557b9c4c133d61e697b3a5cc Mon Sep 17 00:00:00 2001 From: Friedrich Beckmann Date: Sun, 1 Jun 2025 15:45:33 +0200 Subject: moved project to blinky --- src/main.rs | 112 ------------------------------------------------------------ 1 file changed, 112 deletions(-) delete mode 100644 src/main.rs (limited to 'src') 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 -- cgit v1.2.3