diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 960438f..de13de8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,14 @@ #![no_std] #![no_main] +extern crate alloc; +use alloc::string::String; use esp_backtrace as _; // panic_handler -use esp_hal::{rmt::Rmt, time::Rate}; +use esp_hal::{ + interrupt::software::SoftwareInterruptControl, rmt::Rmt, time::Rate, timer::timg::TimerGroup, +}; use esp_hal_smartled::{SmartLedsAdapter, smart_led_buffer}; +use esp_radio::wifi; use smart_leds::RGB; use esp32c6_play::{init, sin, wait_ms, write_rgb}; @@ -14,8 +19,39 @@ esp_bootloader_esp_idf::esp_app_desc!(); #[esp_hal::main] fn main() -> ! { + // initialize peripherals and logging let peripherals = init(); + // initialize heap + esp_alloc::heap_allocator!(size: 64 * 1024); + + // initialize wifi + let timg0 = TimerGroup::new(peripherals.TIMG0); + let software_interrupt = SoftwareInterruptControl::new(peripherals.SW_INTERRUPT); + esp_rtos::start(timg0.timer0, software_interrupt.software_interrupt0); + let esp_radio_controller = esp_radio::init().expect("failed to init radio controller"); + let (mut wifi_controller, _) = wifi::new( + &esp_radio_controller, + peripherals.WIFI, + wifi::Config::default(), + ) + .expect("failed to create wifi controller"); + + let wifi_config = wifi::ModeConfig::AccessPoint( + wifi::AccessPointConfig::default() + .with_auth_method(wifi::AuthMethod::WpaWpa2Personal) + .with_ssid(String::from("ssid-test")) + .with_password(String::from("password")), + ); + wifi_controller + .set_config(&wifi_config) + .expect("failed to set wifi config"); + + wifi_controller + .start() + .expect("failed to start wifi controller"); + + // set up rgb led let mut led_buffer = smart_led_buffer!(1 /* # of leds */); let mut rgb_led = { let frequency = Rate::from_mhz(80); // max frequency of RMT |
