FreeCalypso > hg > freecalypso-tools
annotate target-utils/buzplayer/melplay.c @ 175:b002c7cf5d03
fc-e1gen: support parenthesized options for bit0 and dummy time byte
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 25 Mar 2017 18:36:37 +0000 |
parents | 8a200d65c6a0 |
children | 158dd05fb9f9 |
rev | line source |
---|---|
81
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 #include "types.h" |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 #include "melody.h" |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 extern struct melentry *melody_buf_start, *melody_buf_tailptr; |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #define ARMIO_LOAD_TIM (*(volatile u16 *) 0xFFFE4808) |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #define BUZZ_LIGHT_REG (*(volatile u16 *) 0xFFFE480E) |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 void |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 melody_play() |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 { |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 struct melentry *p; |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 int count; |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 wait_for_tdma_frame(); |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 for (p = melody_buf_start; p < melody_buf_tailptr; p++) { |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 if (p->tone) { |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 ARMIO_LOAD_TIM = p->tone; |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 BUZZ_LIGHT_REG = 1; |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 } else |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 BUZZ_LIGHT_REG = 0; |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 for (count = p->dur; count; count--) |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 wait_for_tdma_frame(); |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 BUZZ_LIGHT_REG = 0; |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 } |
8a200d65c6a0
buzplayer: play implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 } |