@@ -10,28 +10,6 @@ use cortex_m_rt::entry;
10
10
11
11
use stm32f3xx_hal:: { dac:: Dac , pac, prelude:: * } ;
12
12
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
-
35
13
#[ entry]
36
14
/// Main Thread
37
15
fn main ( ) -> ! {
@@ -59,9 +37,8 @@ fn main() -> ! {
59
37
let mut led = true ;
60
38
61
39
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) ;
65
42
cortex_m:: asm:: delay ( 8_000 ) ;
66
43
}
67
44
if led {
0 commit comments