aboutsummaryrefslogtreecommitdiff
path: root/embassy-mcxa/src/interrupt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-mcxa/src/interrupt.rs')
-rw-r--r--embassy-mcxa/src/interrupt.rs122
1 files changed, 119 insertions, 3 deletions
diff --git a/embassy-mcxa/src/interrupt.rs b/embassy-mcxa/src/interrupt.rs
index c960af7a2..7eabc6495 100644
--- a/embassy-mcxa/src/interrupt.rs
+++ b/embassy-mcxa/src/interrupt.rs
@@ -9,7 +9,10 @@
9mod generated { 9mod generated {
10 #[rustfmt::skip] 10 #[rustfmt::skip]
11 embassy_hal_internal::interrupt_mod!( 11 embassy_hal_internal::interrupt_mod!(
12 ADC0,
12 ADC1, 13 ADC1,
14 ADC2,
15 ADC3,
13 DMA_CH0, 16 DMA_CH0,
14 DMA_CH1, 17 DMA_CH1,
15 DMA_CH2, 18 DMA_CH2,
@@ -279,11 +282,48 @@ impl InterruptExt for Rtc {
279 cortex_m::peripheral::NVIC::is_pending(Interrupt::RTC) 282 cortex_m::peripheral::NVIC::is_pending(Interrupt::RTC)
280 } 283 }
281} 284}
285pub struct Adc0;
286pub const ADC0: Adc0 = Adc0;
282 287
283pub struct Adc; 288impl InterruptExt for Adc0 {
284pub const ADC1: Adc = Adc; 289 /// Clear any pending ADC0 in NVIC.
290 #[inline]
291 fn unpend(&self) {
292 cortex_m::peripheral::NVIC::unpend(Interrupt::ADC0);
293 }
294
295 /// Set NVIC priority for ADC0.
296 #[inline]
297 fn set_priority(&self, priority: Priority) {
298 unsafe {
299 let mut nvic = cortex_m::peripheral::Peripherals::steal().NVIC;
300 nvic.set_priority(Interrupt::ADC0, u8::from(priority));
301 }
302 }
285 303
286impl InterruptExt for Adc { 304 /// Enable ADC0 in NVIC.
305 #[inline]
306 unsafe fn enable(&self) {
307 cortex_m::peripheral::NVIC::unmask(Interrupt::ADC0);
308 }
309
310 /// Disable ADC0 in NVIC.
311 #[inline]
312 unsafe fn disable(&self) {
313 cortex_m::peripheral::NVIC::mask(Interrupt::ADC0);
314 }
315
316 /// Check if ADC0 is pending in NVIC.
317 #[inline]
318 fn is_pending(&self) -> bool {
319 cortex_m::peripheral::NVIC::is_pending(Interrupt::ADC0)
320 }
321}
322
323pub struct Adc1;
324pub const ADC1: Adc1 = Adc1;
325
326impl InterruptExt for Adc1 {
287 /// Clear any pending ADC1 in NVIC. 327 /// Clear any pending ADC1 in NVIC.
288 #[inline] 328 #[inline]
289 fn unpend(&self) { 329 fn unpend(&self) {
@@ -318,6 +358,82 @@ impl InterruptExt for Adc {
318 } 358 }
319} 359}
320 360
361pub struct Adc2;
362pub const ADC2: Adc2 = Adc2;
363
364impl InterruptExt for Adc2 {
365 /// Clear any pending ADC2 in NVIC.
366 #[inline]
367 fn unpend(&self) {
368 cortex_m::peripheral::NVIC::unpend(Interrupt::ADC2);
369 }
370
371 /// Set NVIC priority for ADC2.
372 #[inline]
373 fn set_priority(&self, priority: Priority) {
374 unsafe {
375 let mut nvic = cortex_m::peripheral::Peripherals::steal().NVIC;
376 nvic.set_priority(Interrupt::ADC2, u8::from(priority));
377 }
378 }
379
380 /// Enable ADC2 in NVIC.
381 #[inline]
382 unsafe fn enable(&self) {
383 cortex_m::peripheral::NVIC::unmask(Interrupt::ADC2);
384 }
385
386 /// Disable ADC2 in NVIC.
387 #[inline]
388 unsafe fn disable(&self) {
389 cortex_m::peripheral::NVIC::mask(Interrupt::ADC2);
390 }
391
392 /// Check if ADC2 is pending in NVIC.
393 #[inline]
394 fn is_pending(&self) -> bool {
395 cortex_m::peripheral::NVIC::is_pending(Interrupt::ADC2)
396 }
397}
398
399pub struct Adc3;
400pub const ADC3: Adc3 = Adc3;
401
402impl InterruptExt for Adc3 {
403 /// Clear any pending ADC3 in NVIC.
404 #[inline]
405 fn unpend(&self) {
406 cortex_m::peripheral::NVIC::unpend(Interrupt::ADC3);
407 }
408
409 /// Set NVIC priority for ADC3.
410 #[inline]
411 fn set_priority(&self, priority: Priority) {
412 unsafe {
413 let mut nvic = cortex_m::peripheral::Peripherals::steal().NVIC;
414 nvic.set_priority(Interrupt::ADC3, u8::from(priority));
415 }
416 }
417
418 /// Enable ADC3 in NVIC.
419 #[inline]
420 unsafe fn enable(&self) {
421 cortex_m::peripheral::NVIC::unmask(Interrupt::ADC3);
422 }
423
424 /// Disable ADC3 in NVIC.
425 #[inline]
426 unsafe fn disable(&self) {
427 cortex_m::peripheral::NVIC::mask(Interrupt::ADC3);
428 }
429
430 /// Check if ADC3 is pending in NVIC.
431 #[inline]
432 fn is_pending(&self) -> bool {
433 cortex_m::peripheral::NVIC::is_pending(Interrupt::ADC3)
434 }
435}
436
321pub struct Gpio0; 437pub struct Gpio0;
322pub const GPIO0: Gpio0 = Gpio0; 438pub const GPIO0: Gpio0 = Gpio0;
323 439