summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVineet K <git@vineetk.net>2024-04-15 22:38:55 -0400
committerkar <kar@13f0.net>2024-04-15 22:38:55 -0400
commit9d751dc020b43f32b1cd7e5216f4d8de0208dda0 (patch)
tree5384e06b8e4d56553d13fd73531da0c2cf4ddb7a
parentfc85413fa9891c32b4d82cd7d0e27fd04220be91 (diff)
investigate why variable delay is not working
-rw-r--r--main.c51
1 files changed, 27 insertions, 24 deletions
diff --git a/main.c b/main.c
index 9f99ce1..461a970 100644
--- a/main.c
+++ b/main.c
@@ -9,6 +9,7 @@
9#include <avr/interrupt.h> 9#include <avr/interrupt.h>
10 10
11#define F_CPU 16000000UL 11#define F_CPU 16000000UL
12#define __DELAY_BACKWARD_COMPATIBLE__ /* to use variables with _delay_u/ms */
12#include <util/delay.h> 13#include <util/delay.h>
13 14
14#define P_RX 0 15#define P_RX 0
@@ -16,29 +17,29 @@
16#define P_SPKR 2 17#define P_SPKR 2
17 18
18unsigned short freqs[] = { 19unsigned short freqs[] = {
19 100, 20 1 / 100 * 1e6 / 2,
20 200, 21 1 / 200 * 1e6 / 2,
21 250, 22 1 / 250 * 1e6 / 2,
22 300, 23 1 / 300 * 1e6 / 2,
23 350, 24 1 / 350 * 1e6 / 2,
24 400, 25 1 / 400 * 1e6 / 2,
25 500, 26 1 / 500 * 1e6 / 2,
26 600, 27 1 / 600 * 1e6 / 2,
27 700, 28 1 / 700 * 1e6 / 2,
28 750, 29 1 / 750 * 1e6 / 2,
29 1000, 30 1 / 1000 * 1e6 / 2,
30 1250, 31 1 / 1250 * 1e6 / 2,
31 1500, 32 1 / 1500 * 1e6 / 2,
32 1750, 33 1 / 1750 * 1e6 / 2,
33 2000, 34 1 / 2000 * 1e6 / 2,
34 3000, 35 1 / 3000 * 1e6 / 2,
35 4000, 36 1 / 4000 * 1e6 / 2,
36 5000, 37 1 / 5000 * 1e6 / 2,
37 6000, 38 1 / 6000 * 1e6 / 2,
38 7000, 39 1 / 7000 * 1e6 / 2,
39 8000 40 1 / 8000 * 1e6 / 2
40}; 41};
41unsigned char note = 0; 42unsigned char note = 8;
42unsigned char buttonpressed = 1; 43unsigned char buttonpressed = 1;
43 44
44int 45int
@@ -57,8 +58,10 @@ main(void)
57 58
58 //for (;;); 59 //for (;;);
59 for (unsigned char n = 0;; n = (n + 1) % 2) { 60 for (unsigned char n = 0;; n = (n + 1) % 2) {
60 if (!buttonpressed) continue; 61 if (!buttonpressed && n == 0) continue;
61 _delay_us(71.43); 62 _delay_us(freqs[note]);
63// _delay_us(714.2857);
64// _delay_us(70);
62 PORTD ^= 1 << P_SPKR; 65 PORTD ^= 1 << P_SPKR;
63 } 66 }
64} 67}