This commit is contained in:
2024-02-19 10:24:26 +01:00
commit 9acc1897c3
5 changed files with 152 additions and 0 deletions

41
Makefile Normal file
View File

@ -0,0 +1,41 @@
CC=msp430-gcc
AS=msp430-gcc
AR=msp430-ar
# regular
CFLAGS=-Wall -mmcu=msp430g2553 -std=gnu99 -I hottislib -O3 -g0
# for debugging
# CFLAGS=-Wall -mmcu=msp430g2553 -std=gnu99 -I hottislib -g3 -ggdb -gdwarf-2
LDFLAGS=-mmcu=msp430g2553
blinky1.elf: main.o led.o time.o pattern.o PontCoopScheduler.o myrand.o measure.o
$(CC) -o $@ $(LDFLAGS) $^
PontCoopScheduler.o: hottislib/PontCoopScheduler.c hottislib/PontCoopScheduler.h
$(CC) $(CFLAGS) -c $<
.c.o:
$(CC) $(CFLAGS) -c $<
.PHONY: all
all: blinky1.elf
.PHONY: clean
clean:
-rm -f *.o *.elf
.PHONY: upload
upload: blinky1.elf
mspdebug rf2500 "prog blinky1.elf"
.PHONY: debug
debug: upload
mspdebug rf2500 gdb &
ddd --debugger "msp430-gdb -x blinky1.gdb"

41
main.c Normal file
View File

@ -0,0 +1,41 @@
#include <msp430g2553.h>
#include <stdint.h>
#include <intrinsics.h>
#include <stdlib.h>
#include <stdbool.h>
#include "time.h"
#include "PontCoopScheduler.h"
#include "led.h"
#include "pattern.h"
#include "measure.h"
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;
timeInit();
schInit();
ledInit();
patternInit();
measureInit();
// ledSetMatrix(0, 0, BLUE);
__enable_interrupt();
while (1) {
schExec();
ledExec();
}
}

13
readme.md Normal file
View File

@ -0,0 +1,13 @@
Build:
* make all
Flash:
* make upload
Debugger:
* enable debugging in Makefile
* mspdebug rf2500 gdb
* ddd --debugger msp430-gdb
* for every code change upload using Makefile and restart both mspdebug and ddd (or fine a way to reset the both)

38
time.c Normal file
View File

@ -0,0 +1,38 @@
/*
* time.c
*
* Created on: 20.05.2014
* Author: wn
*/
#include <msp430g2553.h>
#include <isr_compat.h>
#include <stdint.h>
#include "time.h"
#include "PontCoopScheduler.h"
volatile uint32_t timestamp;
ISR(TIMER0_A0, TA0_ISR) {
timestamp++;
schUpdate();
}
void timeInit() {
timestamp = 0;
TACCR0 = 32;
TACCTL0 = CCIE;
TACTL = MC_1 | ID_0 | TASSEL_1 | TACLR;
}
uint32_t getMillis() {
return timestamp;
}
void ms_active_delay(uint16_t delay) {
uint32_t start = timestamp;
while (start + delay > timestamp);
}

19
time.h Normal file
View File

@ -0,0 +1,19 @@
/*
* time.h
*
* Created on: 20.05.2014
* Author: wn
*/
#ifndef TIME_H_
#define TIME_H_
#include <stdint.h>
void timeInit();
uint32_t getMillis();
void ms_active_delay(uint16_t delay);
#endif /* TIME_H_ */