begin sound driver
This commit is contained in:
31
sound-driver/Makefile
Normal file
31
sound-driver/Makefile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
TOOLCHAIN_PREFIX=/opt/msp430-gcc
|
||||||
|
CC=$(TOOLCHAIN_PREFIX)/bin/msp430-elf-gcc
|
||||||
|
OBJDUMP=$(TOOLCHAIN_PREFIX)/bin/msp430-elf-objdump
|
||||||
|
|
||||||
|
ARTIFACT=firmware
|
||||||
|
MCU=msp430g2553
|
||||||
|
CFLAGS=-Wall -mmcu=$(MCU) -std=gnu99 -I $(TOOLCHAIN_PREFIX)/include -O1 -g0
|
||||||
|
|
||||||
|
# for debugging
|
||||||
|
#CFLAGS+= -g3 -ggdb -gdwarf-2
|
||||||
|
|
||||||
|
LDFLAGS=-mmcu=$(MCU) -L $(TOOLCHAIN_PREFIX)/include
|
||||||
|
|
||||||
|
$(ARTIFACT).elf: main.o
|
||||||
|
$(CC) -o $@ $(LDFLAGS) $^
|
||||||
|
$(OBJDUMP) -D $(ARTIFACT).elf > $(ARTIFACT).txt
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
$(CC) $(CFLAGS) -c $<
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: $(ARTIFACT).elf
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
-rm -f *.o $(ARTIFACT).elf $(ARTIFACT).txt
|
||||||
|
|
||||||
|
.PHONY: upload
|
||||||
|
upload: $(ARTIFACT).elf
|
||||||
|
mspdebug rf2500 "prog $(ARTIFACT).elf"
|
43
sound-driver/main.c
Normal file
43
sound-driver/main.c
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#include <msp430g2553.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void __attribute__ ((interrupt (USCIAB0RX_VECTOR))) receive() {
|
||||||
|
if (UC0IFG & UCB0RXIFG) {
|
||||||
|
// receive an octet
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
WDTCTL = WDTPW | WDTHOLD;
|
||||||
|
|
||||||
|
__disable_interrupt();
|
||||||
|
|
||||||
|
// highest possible system clock
|
||||||
|
DCOCTL = DCO0 | DCO1 | DCO2;
|
||||||
|
BCSCTL1 = XT2OFF | RSEL0 | RSEL1 | RSEL2 | RSEL3;
|
||||||
|
BCSCTL2 = 0;
|
||||||
|
BCSCTL3 = 0;
|
||||||
|
|
||||||
|
// SPI slave
|
||||||
|
// BIT4: UCB0STE
|
||||||
|
// BIT5: UCB0CLK
|
||||||
|
// BIT6: UCB0SOMI
|
||||||
|
// BIT7: UCB0SIMO
|
||||||
|
P1SEL |= BIT4 | BIT5 | BIT6 | BIT7;
|
||||||
|
P1SEL2 |= BIT4 | BIT5 | BIT6 | BIT7;
|
||||||
|
// most significant bit first, enable STE
|
||||||
|
UCB0CTL0 = UCSYNC | UCMSB | UCMODE_2;
|
||||||
|
UCB0CTL1 = 0x00;
|
||||||
|
// enable RX interrupt
|
||||||
|
UC0IE |= UCB0RXIE;
|
||||||
|
|
||||||
|
|
||||||
|
__enable_interrupt();
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user