aboutsummaryrefslogtreecommitdiff
path: root/tests/rp/src/bin/adc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rp/src/bin/adc.rs')
-rw-r--r--tests/rp/src/bin/adc.rs61
1 files changed, 38 insertions, 23 deletions
diff --git a/tests/rp/src/bin/adc.rs b/tests/rp/src/bin/adc.rs
index 87e9709cc..c2175bc03 100644
--- a/tests/rp/src/bin/adc.rs
+++ b/tests/rp/src/bin/adc.rs
@@ -30,12 +30,12 @@ async fn main(_spawner: Spawner) {
30 30
31 { 31 {
32 { 32 {
33 let mut p = Channel::new_pin(&mut a, Pull::Down); 33 let mut p = Channel::new_pin(a.reborrow(), Pull::Down);
34 defmt::assert!(adc.blocking_read(&mut p).unwrap() < 0b01_0000_0000); 34 defmt::assert!(adc.blocking_read(&mut p).unwrap() < 0b01_0000_0000);
35 defmt::assert!(adc.read(&mut p).await.unwrap() < 0b01_0000_0000); 35 defmt::assert!(adc.read(&mut p).await.unwrap() < 0b01_0000_0000);
36 } 36 }
37 { 37 {
38 let mut p = Channel::new_pin(&mut a, Pull::Up); 38 let mut p = Channel::new_pin(a.reborrow(), Pull::Up);
39 defmt::assert!(adc.blocking_read(&mut p).unwrap() > 0b11_0000_0000); 39 defmt::assert!(adc.blocking_read(&mut p).unwrap() > 0b11_0000_0000);
40 defmt::assert!(adc.read(&mut p).await.unwrap() > 0b11_0000_0000); 40 defmt::assert!(adc.read(&mut p).await.unwrap() > 0b11_0000_0000);
41 } 41 }
@@ -43,21 +43,21 @@ async fn main(_spawner: Spawner) {
43 // not bothering with async reads from now on 43 // not bothering with async reads from now on
44 { 44 {
45 { 45 {
46 let mut p = Channel::new_pin(&mut b, Pull::Down); 46 let mut p = Channel::new_pin(b.reborrow(), Pull::Down);
47 defmt::assert!(adc.blocking_read(&mut p).unwrap() < 0b01_0000_0000); 47 defmt::assert!(adc.blocking_read(&mut p).unwrap() < 0b01_0000_0000);
48 } 48 }
49 { 49 {
50 let mut p = Channel::new_pin(&mut b, Pull::Up); 50 let mut p = Channel::new_pin(b.reborrow(), Pull::Up);
51 defmt::assert!(adc.blocking_read(&mut p).unwrap() > 0b11_0000_0000); 51 defmt::assert!(adc.blocking_read(&mut p).unwrap() > 0b11_0000_0000);
52 } 52 }
53 } 53 }
54 { 54 {
55 { 55 {
56 let mut p = Channel::new_pin(&mut c, Pull::Down); 56 let mut p = Channel::new_pin(c.reborrow(), Pull::Down);
57 defmt::assert!(adc.blocking_read(&mut p).unwrap() < 0b01_0000_0000); 57 defmt::assert!(adc.blocking_read(&mut p).unwrap() < 0b01_0000_0000);
58 } 58 }
59 { 59 {
60 let mut p = Channel::new_pin(&mut c, Pull::Up); 60 let mut p = Channel::new_pin(c.reborrow(), Pull::Up);
61 defmt::assert!(adc.blocking_read(&mut p).unwrap() > 0b11_0000_0000); 61 defmt::assert!(adc.blocking_read(&mut p).unwrap() > 0b11_0000_0000);
62 } 62 }
63 } 63 }
@@ -65,15 +65,15 @@ async fn main(_spawner: Spawner) {
65 // gp29 is connected to vsys through a 200k/100k divider, 65 // gp29 is connected to vsys through a 200k/100k divider,
66 // adding pulls should change the value 66 // adding pulls should change the value
67 let low = { 67 let low = {
68 let mut p = Channel::new_pin(&mut d, Pull::Down); 68 let mut p = Channel::new_pin(d.reborrow(), Pull::Down);
69 adc.blocking_read(&mut p).unwrap() 69 adc.blocking_read(&mut p).unwrap()
70 }; 70 };
71 let none = { 71 let none = {
72 let mut p = Channel::new_pin(&mut d, Pull::None); 72 let mut p = Channel::new_pin(d.reborrow(), Pull::None);
73 adc.blocking_read(&mut p).unwrap() 73 adc.blocking_read(&mut p).unwrap()
74 }; 74 };
75 let up = { 75 let up = {
76 let mut p = Channel::new_pin(&mut d, Pull::Up); 76 let mut p = Channel::new_pin(d.reborrow(), Pull::Up);
77 adc.blocking_read(&mut p).unwrap() 77 adc.blocking_read(&mut p).unwrap()
78 }; 78 };
79 defmt::assert!(low < none); 79 defmt::assert!(low < none);
@@ -81,7 +81,7 @@ async fn main(_spawner: Spawner) {
81 } 81 }
82 { 82 {
83 let temp = convert_to_celsius( 83 let temp = convert_to_celsius(
84 adc.read(&mut Channel::new_temp_sensor(&mut p.ADC_TEMP_SENSOR)) 84 adc.read(&mut Channel::new_temp_sensor(p.ADC_TEMP_SENSOR.reborrow()))
85 .await 85 .await
86 .unwrap(), 86 .unwrap(),
87 ); 87 );
@@ -97,14 +97,29 @@ async fn main(_spawner: Spawner) {
97 let mut low = [0u16; 16]; 97 let mut low = [0u16; 16];
98 let mut none = [0u8; 16]; 98 let mut none = [0u8; 16];
99 let mut up = [Sample::default(); 16]; 99 let mut up = [Sample::default(); 16];
100 adc.read_many(&mut Channel::new_pin(&mut d, Pull::Down), &mut low, 1, &mut p.DMA_CH0) 100 adc.read_many(
101 .await 101 &mut Channel::new_pin(d.reborrow(), Pull::Down),
102 .unwrap(); 102 &mut low,
103 adc.read_many(&mut Channel::new_pin(&mut d, Pull::None), &mut none, 1, &mut p.DMA_CH0) 103 1,
104 .await 104 p.DMA_CH0.reborrow(),
105 .unwrap(); 105 )
106 adc.read_many_raw(&mut Channel::new_pin(&mut d, Pull::Up), &mut up, 1, &mut p.DMA_CH0) 106 .await
107 .await; 107 .unwrap();
108 adc.read_many(
109 &mut Channel::new_pin(d.reborrow(), Pull::None),
110 &mut none,
111 1,
112 p.DMA_CH0.reborrow(),
113 )
114 .await
115 .unwrap();
116 adc.read_many_raw(
117 &mut Channel::new_pin(d.reborrow(), Pull::Up),
118 &mut up,
119 1,
120 p.DMA_CH0.reborrow(),
121 )
122 .await;
108 defmt::assert!(low.iter().zip(none.iter()).all(|(l, n)| *l >> 4 < *n as u16)); 123 defmt::assert!(low.iter().zip(none.iter()).all(|(l, n)| *l >> 4 < *n as u16));
109 defmt::assert!(up.iter().all(|s| s.good())); 124 defmt::assert!(up.iter().all(|s| s.good()));
110 defmt::assert!(none.iter().zip(up.iter()).all(|(n, u)| (*n as u16) < u.value())); 125 defmt::assert!(none.iter().zip(up.iter()).all(|(n, u)| (*n as u16) < u.value()));
@@ -112,10 +127,10 @@ async fn main(_spawner: Spawner) {
112 { 127 {
113 let mut temp = [0u16; 16]; 128 let mut temp = [0u16; 16];
114 adc.read_many( 129 adc.read_many(
115 &mut Channel::new_temp_sensor(&mut p.ADC_TEMP_SENSOR), 130 &mut Channel::new_temp_sensor(p.ADC_TEMP_SENSOR.reborrow()),
116 &mut temp, 131 &mut temp,
117 1, 132 1,
118 &mut p.DMA_CH0, 133 p.DMA_CH0.reborrow(),
119 ) 134 )
120 .await 135 .await
121 .unwrap(); 136 .unwrap();
@@ -126,10 +141,10 @@ async fn main(_spawner: Spawner) {
126 { 141 {
127 let mut multi = [0u16; 2]; 142 let mut multi = [0u16; 2];
128 let mut channels = [ 143 let mut channels = [
129 Channel::new_pin(&mut a, Pull::Up), 144 Channel::new_pin(a.reborrow(), Pull::Up),
130 Channel::new_temp_sensor(&mut p.ADC_TEMP_SENSOR), 145 Channel::new_temp_sensor(p.ADC_TEMP_SENSOR.reborrow()),
131 ]; 146 ];
132 adc.read_many_multichannel(&mut channels, &mut multi, 1, &mut p.DMA_CH0) 147 adc.read_many_multichannel(&mut channels, &mut multi, 1, p.DMA_CH0.reborrow())
133 .await 148 .await
134 .unwrap(); 149 .unwrap();
135 defmt::assert!(multi[0] > 3_000); 150 defmt::assert!(multi[0] > 3_000);