summaryrefslogtreecommitdiff
path: root/firmware/test
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-05-02 23:02:36 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-05-02 23:02:36 +0000
commit46f5461ac742921cff1a17472399e9b6d1b18eeb (patch)
treee763637688c7212b7fd33533e4875ec43f28ed3f /firmware/test
parent611a7c55e2eeec09c62a8c211d672c3129163d33 (diff)
Early MP3 playing test
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@394 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/test')
-rw-r--r--firmware/test/i2c/Makefile2
-rw-r--r--firmware/test/i2c/main.c88
2 files changed, 89 insertions, 1 deletions
diff --git a/firmware/test/i2c/Makefile b/firmware/test/i2c/Makefile
index 4f004f8333..dcc0d2be7a 100644
--- a/firmware/test/i2c/Makefile
+++ b/firmware/test/i2c/Makefile
@@ -10,7 +10,7 @@ CFLAGS = -g -Wall -m1 -nostdlib -Wstrict-prototypes -fschedule-insns -fno-builti
AFLAGS += -small -relax
OBJS= crt0.o main.o ../../drivers/i2c.o ../../drivers/mas.o ../../debug.o \
- ../../common/sprintf.o
+ ../../common/sprintf.o mp3data.o
%.o: %.S
$(CC) -o $@ $(CFLAGS) $(INCLUDES) $(DEFS) -c $<
diff --git a/firmware/test/i2c/main.c b/firmware/test/i2c/main.c
index 13eaacef7a..825de73788 100644
--- a/firmware/test/i2c/main.c
+++ b/firmware/test/i2c/main.c
@@ -21,6 +21,56 @@
#include "sh7034.h"
#include "debug.h"
+extern char mp3data[];
+extern int mp3datalen;
+
+unsigned char *mp3dataptr;
+
+void setup_sci0(void)
+{
+ /* set PB12 to output */
+ PBIOR |= 0x1000;
+
+ /* Disable serial port */
+ SCR0 = 0x00;
+
+ /* Syncronous, 8N1, no prescale */
+ SMR0 = 0x80;
+
+ /* Set baudrate 1Mbit/s */
+ BRR0 = 0x03;
+
+ /* use SCK as serial clock output */
+ SCR0 = 0x01;
+
+ /* Clear FER and PER */
+ SSR0 &= 0xe7;
+
+ /* Set interrupt D priority to 0 */
+// IPRD &= 0x0ff0;
+
+ /* set IRQ6 and IRQ7 to edge detect */
+// ICR |= 0x03;
+
+ /* set PB15 and PB14 to inputs */
+ PBIOR &= 0x7fff;
+ PBIOR &= 0xbfff;
+
+ /* set IRQ6 prio 8 and IRQ7 prio 0 */
+// IPRB = ( IPRB & 0xff00 ) | 0x80;
+
+ IPRB = 0;
+
+ /* Enable Tx (only!) */
+ SCR0 = 0x20;
+}
+
+int mas_tx_ready(void)
+{
+ return (SSR0 & SCI_TDRE);
+}
+
+
int main(void)
{
char buf[40];
@@ -105,6 +155,44 @@ int main(void)
}
debugf("Register 0xaa: %x\n", i);
+
+ i=mas_writereg(0x3b, 0x20);
+ if (i < 0) {
+ debugf("Error - mas_writereg() returned %d\n", i);
+ while(1);
+ }
+
+ i = mas_run(1);
+ if (i < 0) {
+ debugf("Error - mas_run() returned %d\n", i);
+ while(1);
+ }
+
+
+ setup_sci0();
+
+ mp3dataptr = mp3data;
+ i = 0;
+
+ while(1)
+ {
+ if(PBDR & 0x4000)
+ {
+ if(i < mp3datalen)
+ {
+ while(!mas_tx_ready()){};
+ /*
+ * Write data into TDR and clear TDRE
+ */
+ TDR0 = mp3dataptr[i++];
+ SSR0 &= ~SCI_TDRE;
+ }
+ }
+ else
+ {
+ debugf("MAS not ready\n");
+ }
+ }
while(1);
}