Repo for designs & driver for a TA7642 powered lightning detector
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update to latest embassy

+62 -36
+44 -20
Cargo.lock
··· 254 254 255 255 [[package]] 256 256 name = "embassy-embedded-hal" 257 - version = "0.5.0" 257 + version = "0.6.0" 258 258 source = "registry+https://github.com/rust-lang/crates.io-index" 259 - checksum = "554e3e840696f54b4c9afcf28a0f24da431c927f4151040020416e7393d6d0d8" 259 + checksum = "b0641612053b2f34fc250bb63f6630ae75de46e02ade7f457268447081d709ce" 260 260 dependencies = [ 261 261 "embassy-futures", 262 - "embassy-hal-internal", 262 + "embassy-hal-internal 0.4.0", 263 263 "embassy-sync", 264 264 "embedded-hal 0.2.7", 265 265 "embedded-hal 1.0.0", ··· 283 283 284 284 [[package]] 285 285 name = "embassy-hal-internal" 286 - version = "0.3.0" 286 + version = "0.4.0" 287 287 source = "registry+https://github.com/rust-lang/crates.io-index" 288 - checksum = "95285007a91b619dc9f26ea8f55452aa6c60f7115a4edc05085cd2bd3127cd7a" 288 + checksum = "7f10ce10a4dfdf6402d8e9bd63128986b96a736b1a0a6680547ed2ac55d55dba" 289 + dependencies = [ 290 + "num-traits", 291 + ] 292 + 293 + [[package]] 294 + name = "embassy-hal-internal" 295 + version = "0.5.0" 296 + source = "registry+https://github.com/rust-lang/crates.io-index" 297 + checksum = "568659fc53866d3d85c60fa33723fb751aa69e71507634fc2c19e7649432fb75" 289 298 dependencies = [ 290 299 "cortex-m", 291 300 "critical-section", ··· 294 303 295 304 [[package]] 296 305 name = "embassy-rp" 297 - version = "0.9.0" 306 + version = "0.10.0" 298 307 source = "registry+https://github.com/rust-lang/crates.io-index" 299 - checksum = "af8d5ac11a8bc209d359ad98bb10a10f786471dd474790f3a4f991c77ae94f6f" 308 + checksum = "5d98f472894c1ecffac5596c657af5305c57282d29e8746d7fec033951931bc8" 300 309 dependencies = [ 301 310 "cfg-if", 302 311 "cortex-m", ··· 305 314 "document-features", 306 315 "embassy-embedded-hal", 307 316 "embassy-futures", 308 - "embassy-hal-internal", 317 + "embassy-hal-internal 0.5.0", 309 318 "embassy-sync", 310 319 "embassy-time", 311 320 "embassy-usb-driver", ··· 313 322 "embedded-hal 1.0.0", 314 323 "embedded-hal-async", 315 324 "embedded-hal-nb", 316 - "embedded-io", 317 - "embedded-io-async", 325 + "embedded-io 0.7.1", 326 + "embedded-io-async 0.7.0", 318 327 "embedded-storage", 319 328 "embedded-storage-async", 320 329 "fixed", ··· 345 354 346 355 [[package]] 347 356 name = "embassy-sync" 348 - version = "0.7.2" 357 + version = "0.8.0" 349 358 source = "registry+https://github.com/rust-lang/crates.io-index" 350 - checksum = "73974a3edbd0bd286759b3d483540f0ebef705919a5f56f4fc7709066f71689b" 359 + checksum = "7bbd85cf5a5ae56bdf26f618364af642d1d0a4e245cdd75cd9aabda382f65a81" 351 360 dependencies = [ 352 361 "cfg-if", 353 362 "critical-section", 354 - "embedded-io-async", 363 + "embedded-io-async 0.7.0", 355 364 "futures-core", 356 365 "futures-sink", 357 - "heapless 0.8.0", 366 + "heapless 0.9.2", 358 367 ] 359 368 360 369 [[package]] 361 370 name = "embassy-time" 362 - version = "0.5.0" 371 + version = "0.5.1" 363 372 source = "registry+https://github.com/rust-lang/crates.io-index" 364 - checksum = "f4fa65b9284d974dad7a23bb72835c4ec85c0b540d86af7fc4098c88cff51d65" 373 + checksum = "592b0c143ec626e821d4d90da51a2bd91d559d6c442b7c74a47d368c9e23d97a" 365 374 dependencies = [ 366 375 "cfg-if", 367 376 "critical-section", ··· 376 385 377 386 [[package]] 378 387 name = "embassy-time-driver" 379 - version = "0.2.1" 388 + version = "0.2.2" 380 389 source = "registry+https://github.com/rust-lang/crates.io-index" 381 - checksum = "a0a244c7dc22c8d0289379c8d8830cae06bb93d8f990194d0de5efb3b5ae7ba6" 390 + checksum = "6ee71af1b3a0deaa53eaf2d39252f83504c853646e472400b763060389b9fcc9" 382 391 dependencies = [ 383 392 "document-features", 384 393 ] ··· 399 408 source = "registry+https://github.com/rust-lang/crates.io-index" 400 409 checksum = "17119855ccc2d1f7470a39756b12068454ae27a3eabb037d940b5c03d9c77b7a" 401 410 dependencies = [ 402 - "embedded-io-async", 411 + "embedded-io-async 0.6.1", 403 412 ] 404 413 405 414 [[package]] ··· 444 453 checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 445 454 446 455 [[package]] 456 + name = "embedded-io" 457 + version = "0.7.1" 458 + source = "registry+https://github.com/rust-lang/crates.io-index" 459 + checksum = "9eb1aa714776b75c7e67e1da744b81a129b3ff919c8712b5e1b32252c1f07cc7" 460 + 461 + [[package]] 447 462 name = "embedded-io-async" 448 463 version = "0.6.1" 449 464 source = "registry+https://github.com/rust-lang/crates.io-index" 450 465 checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" 451 466 dependencies = [ 452 - "embedded-io", 467 + "embedded-io 0.6.1", 468 + ] 469 + 470 + [[package]] 471 + name = "embedded-io-async" 472 + version = "0.7.0" 473 + source = "registry+https://github.com/rust-lang/crates.io-index" 474 + checksum = "2564b9f813c544241430e147d8bc454815ef9ac998878d30cc3055449f7fd4c0" 475 + dependencies = [ 476 + "embedded-io 0.7.1", 453 477 ] 454 478 455 479 [[package]]
+2 -2
Cargo.toml
··· 12 12 13 13 [workspace.dependencies] 14 14 embassy-time = "0.5" 15 - embassy-sync = "0.7" 16 - embassy-rp = "0.9" 15 + embassy-sync = "0.8" 16 + embassy-rp = "0.10" 17 17 defmt = "1"
+1 -1
embassy-strike-driver/Cargo.toml
··· 8 8 rust-version.workspace = true 9 9 10 10 [features] 11 - default = [] 11 + default = ["rp2040"] 12 12 debug = ["defmt"] 13 13 alloc = [] 14 14 heapless = ["dep:heapless"]
+15 -13
embassy-strike-driver/src/drivers.rs
··· 2 2 pub mod rp { 3 3 use embassy_rp::{ 4 4 Peri, 5 - adc::{self, Adc, AdcPin, Async, InterruptHandler}, 6 - dma, 5 + adc::{self, Adc, AdcPin, Async, InterruptHandler as AdcInterruptHandler}, 6 + dma::{self, ChannelInstance, InterruptHandler as DmaInterruptHandler}, 7 7 interrupt::typelevel::{ADC_IRQ_FIFO, Binding}, 8 8 peripherals::ADC, 9 9 pwm::{self, ChannelBPin, Pwm, SetDutyCycle, Slice}, ··· 12 12 13 13 use crate::traits::{AdcSource, PwmSource}; 14 14 15 - struct AdcInner<'device, T: dma::Channel> { 15 + struct AdcInner<'device> { 16 16 adc: Adc<'device, Async>, 17 17 pin: adc::Channel<'device>, 18 - dma: Peri<'device, T>, 18 + dma: dma::Channel<'device>, 19 19 } 20 20 21 - pub struct AdcDriver<'device, M: RawMutex, T: dma::Channel> { 22 - inner: Mutex<M, AdcInner<'device, T>>, 21 + pub struct AdcDriver<'device, M: RawMutex> { 22 + inner: Mutex<M, AdcInner<'device>>, 23 23 } 24 24 25 - impl<T: dma::Channel> AdcInner<'_, T> { 25 + impl AdcInner<'_> { 26 26 /// Samples at 100Khz, or 10us per sample. If a sampling fails due to conversion error, 27 27 /// it tries again until the sampling succeeds. 28 28 async fn read_many(&mut self, buf: &mut [u16]) { ··· 30 30 31 31 while self 32 32 .adc 33 - .read_many(&mut self.pin, buf, 480, self.dma.reborrow()) 33 + .read_many(&mut self.pin, buf, 480, &mut self.dma) 34 34 .await 35 35 .is_err() 36 36 { ··· 43 43 } 44 44 } 45 45 46 - impl<'device, M: RawMutex, T: dma::Channel> AdcDriver<'device, M, T> { 47 - pub fn new( 46 + impl<'device, M: RawMutex> AdcDriver<'device, M> { 47 + pub fn new<T: ChannelInstance>( 48 48 inner: Peri<'device, ADC>, 49 49 pin: Peri<'device, impl AdcPin + 'device>, 50 50 dma: Peri<'device, T>, 51 - irqs: impl Binding<ADC_IRQ_FIFO, InterruptHandler>, 51 + irqs: impl Binding<ADC_IRQ_FIFO, AdcInterruptHandler> 52 + + Binding<T::Interrupt, DmaInterruptHandler<T>> 53 + + 'device, 52 54 ) -> Self { 53 55 Self { 54 56 inner: Mutex::new(AdcInner { 55 57 adc: Adc::new(inner, irqs, adc::Config::default()), 56 58 pin: adc::Channel::new_pin(pin, embassy_rp::gpio::Pull::None), 57 - dma, 59 + dma: dma::Channel::new(dma, irqs), 58 60 }), 59 61 } 60 62 } 61 63 } 62 64 63 - impl<'device, M: RawMutex, T: dma::Channel> AdcSource for AdcDriver<'device, M, T> { 65 + impl<'device, M: RawMutex> AdcSource for AdcDriver<'device, M> { 64 66 async fn sample_average(&self, samples: &mut [u16]) -> u16 { 65 67 self.sample(samples).await; 66 68