commit 783e8a357ed7a12b533bddcbd1e9a0e237fb6d9c Author: Wolfgang Hottgenroth Date: Thu Jan 24 08:51:21 2019 +0100 initial diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6481c8d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.o +*.elf + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8eb95f8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "hottislib"] + path = hottislib + url = git@gitlab.com:wolutator/hottislib.git diff --git a/hottislib b/hottislib new file mode 160000 index 0000000..d129650 --- /dev/null +++ b/hottislib @@ -0,0 +1 @@ +Subproject commit d129650a6fbc77f5b5474c2b5153fa6adbbda003 diff --git a/led.c b/led.c new file mode 100644 index 0000000..757a601 --- /dev/null +++ b/led.c @@ -0,0 +1,24 @@ +/* + * led.c + * + * Created on: Jan 24, 2019 + * Author: wn + */ + +#include "led.h" +#include "PontCoopScheduler.h" +#include +#include + + + +void ledExec() { + P1OUT ^= BIT0; +} + +void ledInit() { + P1DIR |= BIT0; + P1OUT &= ~BIT0; + + schAdd(ledExec, NULL, 0, 1000); +} diff --git a/led.h b/led.h new file mode 100644 index 0000000..beac851 --- /dev/null +++ b/led.h @@ -0,0 +1,15 @@ +/* + * led.h + * + * Created on: Jan 24, 2019 + * Author: wn + */ + +#ifndef LED_H_ +#define LED_H_ + + +void ledExec(); +void ledInit(); + +#endif /* LED_H_ */ diff --git a/main.c b/main.c new file mode 100644 index 0000000..840bc4b --- /dev/null +++ b/main.c @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include + +#include "time.h" +#include "PontCoopScheduler.h" + +#include "led.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(); + + __enable_interrupt(); + + while (1) { + schExec(); + } +} diff --git a/time.c b/time.c new file mode 100644 index 0000000..a7fd15f --- /dev/null +++ b/time.c @@ -0,0 +1,38 @@ +/* + * time.c + * + * Created on: 20.05.2014 + * Author: wn + */ + +#include +#include +#include + +#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); +} diff --git a/time.h b/time.h new file mode 100644 index 0000000..874251e --- /dev/null +++ b/time.h @@ -0,0 +1,19 @@ +/* + * time.h + * + * Created on: 20.05.2014 + * Author: wn + */ + +#ifndef TIME_H_ +#define TIME_H_ + +#include + +void timeInit(); +uint32_t getMillis(); +void ms_active_delay(uint16_t delay); + + + +#endif /* TIME_H_ */