MSP430x14x MCU og Interrupts
HejVi sidder og arbejder på et projekt hvor vi skal bruge flere interrupts på
en MSP430F149 MCU.
Projektet bliver kompileret med mspgcc (mspgcc.sf.net) toolchain.
Når vi bruger flere interrupts så får vi en fejl:
msp430-ld: section .vectors [0000ffe0 -> 0000ffff] overlaps section
.text [0000fc00 -> 000100d7]
Vi skal gerne bruge:
UART0TX_VECTOR
ADC_VECTOR
Vi har husket og køre:
eint();
og kalder interruptene således:
interrupt(ADC_VECTOR) ADC12ISR(void)
{
ADC[0] = ADC12MEM0;
ADC[1] = ADC12MEM1; // Move results, IFG is cleared
ADC[2] = ADC12MEM2;
ADC[3] = ADC12MEM3;
}
interrupt(UART0TX_VECTOR) send_uart0(void)
{
...
...
...
}
Makefile:
# Project: MSP430
CPP = msp430-gcc.exe
CC = msp430-gcc.exe
RES =
OBJ = main.o konfiguration/konfiguration.o fejl/fejl.o toolboks/toolboks.o
porthandler/porthandler.o porthandler/adc.o terminalkomm/RS232.o $(RES)
LINKOBJ = main.o konfiguration/konfiguration.o fejl/fejl.o
toolboks/toolboks.o porthandler/porthandler.o porthandler/adc.o
terminalkomm/RS232.o $(RES)
LIBS = -L"C:/mspgcc/lib"
INCS = -I"C:/mspgcc/msp430/include"
BIN = main.exe
CFLAGS = $(INCS)-g -O2 -Wall -mmcu=msp430x149
.PHONY: all all-before all-after clean clean-custom
all: all-before main.exe all-after
clean: clean-custom
rm -f $(OBJ) $(BIN)
$(BIN): $(LINKOBJ)
$(CC) $(LINKOBJ) -o "main.exe" $(LIBS)
main.o: main.c
$(CC) -c main.c -o main.o $(CFLAGS)
konfiguration/konfiguration.o: konfiguration/konfiguration.c
$(CC) -c konfiguration/konfiguration.c -o konfiguration/konfiguration.o
$(CFLAGS)
fejl/fejl.o: fejl/fejl.c
$(CC) -c fejl/fejl.c -o fejl/fejl.o $(CFLAGS)
toolboks/toolboks.o: toolboks/toolboks.c
$(CC) -c toolboks/toolboks.c -o toolboks/toolboks.o $(CFLAGS)
porthandler/porthandler.o: porthandler/porthandler.c
$(CC) -c porthandler/porthandler.c -o porthandler/porthandler.o $(CFLAGS)
porthandler/adc.o: porthandler/adc.c
$(CC) -c porthandler/adc.c -o porthandler/adc.o $(CFLAGS)
terminalkomm/RS232.o: terminalkomm/RS232.c
$(CC) -c terminalkomm/RS232.c -o terminalkomm/RS232.o $(CFLAGS)
Vi vil gerne høre fra folk som har brugt flere interrupts på MSP'en