From 783e8a357ed7a12b533bddcbd1e9a0e237fb6d9c Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Thu, 24 Jan 2019 08:51:21 +0100 Subject: [PATCH] initial --- .gitignore | 3 +++ .gitmodules | 3 +++ hottislib | 1 + led.c | 24 ++++++++++++++++++++++++ led.h | 15 +++++++++++++++ main.c | 35 +++++++++++++++++++++++++++++++++++ time.c | 38 ++++++++++++++++++++++++++++++++++++++ time.h | 19 +++++++++++++++++++ 8 files changed, 138 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 160000 hottislib create mode 100644 led.c create mode 100644 led.h create mode 100644 main.c create mode 100644 time.c create mode 100644 time.h 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_ */