Skip to content

Commit 40fe3e4

Browse files
author
Jonas Schievink
committed
Use a linear fade instead of a sine table to make the example fit
1 parent 6ccd572 commit 40fe3e4

File tree

1 file changed

+2
-25
lines changed

1 file changed

+2
-25
lines changed

examples/dac_sine.rs

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,6 @@ use cortex_m_rt::entry;
1010

1111
use stm32f3xx_hal::{dac::Dac, pac, prelude::*};
1212

13-
const LUT_LEN: usize = 256;
14-
15-
// A lookup table for sin(x), over one period, using values from 0 - 4095; ie the full range of
16-
// the STM32 12-bit onboard DAC. Compared to computation, this is faster, at the expense of memory use.
17-
pub static SIN_X: [u16; crate::LUT_LEN] = [
18-
2048, 2098, 2148, 2198, 2248, 2298, 2348, 2398, 2447, 2496, 2545, 2594, 2642, 2690, 2737, 2784,
19-
2831, 2877, 2923, 2968, 3013, 3057, 3100, 3143, 3185, 3226, 3267, 3307, 3346, 3385, 3423, 3459,
20-
3495, 3530, 3565, 3598, 3630, 3662, 3692, 3722, 3750, 3777, 3804, 3829, 3853, 3876, 3898, 3919,
21-
3939, 3958, 3975, 3992, 4007, 4021, 4034, 4045, 4056, 4065, 4073, 4080, 4085, 4089, 4093, 4094,
22-
4095, 4094, 4093, 4089, 4085, 4080, 4073, 4065, 4056, 4045, 4034, 4021, 4007, 3992, 3975, 3958,
23-
3939, 3919, 3898, 3876, 3853, 3829, 3804, 3777, 3750, 3722, 3692, 3662, 3630, 3598, 3565, 3530,
24-
3495, 3459, 3423, 3385, 3346, 3307, 3267, 3226, 3185, 3143, 3100, 3057, 3013, 2968, 2923, 2877,
25-
2831, 2784, 2737, 2690, 2642, 2594, 2545, 2496, 2447, 2398, 2348, 2298, 2248, 2198, 2148, 2098,
26-
2048, 1997, 1947, 1897, 1847, 1797, 1747, 1697, 1648, 1599, 1550, 1501, 1453, 1405, 1358, 1311,
27-
1264, 1218, 1172, 1127, 1082, 1038, 995, 952, 910, 869, 828, 788, 749, 710, 672, 636, 600, 565,
28-
530, 497, 465, 433, 403, 373, 345, 318, 291, 266, 242, 219, 197, 176, 156, 137, 120, 103, 88,
29-
74, 61, 50, 39, 30, 22, 15, 10, 6, 2, 1, 0, 1, 2, 6, 10, 15, 22, 30, 39, 50, 61, 74, 88, 103,
30-
120, 137, 156, 176, 197, 219, 242, 266, 291, 318, 345, 373, 403, 433, 465, 497, 530, 565, 600,
31-
636, 672, 710, 749, 788, 828, 869, 910, 952, 995, 1038, 1082, 1127, 1172, 1218, 1264, 1311,
32-
1358, 1405, 1453, 1501, 1550, 1599, 1648, 1697, 1747, 1797, 1847, 1897, 1947, 1997,
33-
];
34-
3513
#[entry]
3614
/// Main Thread
3715
fn main() -> ! {
@@ -59,9 +37,8 @@ fn main() -> ! {
5937
let mut led = true;
6038

6139
loop {
62-
// lookup values for sine wave and write in buffer
63-
for value in SIN_X {
64-
dac1.write_data(value);
40+
for value in (0..256).chain((0..255).rev()) {
41+
dac1.write_data((4095 / 255) * value);
6542
cortex_m::asm::delay(8_000);
6643
}
6744
if led {

0 commit comments

Comments
 (0)