summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs38
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