summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2017-08-26 03:41:05 +0200
committerChristian Pointner <equinox@spreadspace.org>2017-08-26 03:41:05 +0200
commite40620cbe225b1a81c751b1344a46e34eec16d2b (patch)
treed08e2124eee11370fb8fd4d81a852f9b8c864f82 /lib
parentrename external lib stdperiph to spl (diff)
added stm8s-discovery board and some more init fixup
Diffstat (limited to 'lib')
-rw-r--r--lib/led.c23
-rw-r--r--lib/util.c35
-rw-r--r--lib/util.h29
3 files changed, 71 insertions, 16 deletions
diff --git a/lib/led.c b/lib/led.c
index 3e3d54f..9da4197 100644
--- a/lib/led.c
+++ b/lib/led.c
@@ -25,26 +25,17 @@
#include "led.h"
-#if defined(__BOARD_test__)
-#define NUM_LEDS 1
-#else
-#define NUM_LEDS 0
+#ifndef LED_CNT
+#define LED_CNT 0
#endif
-#if defined(__BOARD_test__)
-#define LED_DIR 1
-#else
+#ifndef LED_DIR
#define LED_DIR 0
#endif
-#if defined(__BOARD_test__)
-#define LED_GPIO GPIOD
-#define LED_PINNUM 0
-#endif
-
void led_init(void)
{
-#if NUM_LEDS >= 1
+#if LED_CNT >= 1
led_off();
LED_GPIO->DDR |= 1<<LED_PINNUM;
#endif
@@ -52,7 +43,7 @@ void led_init(void)
void led_on(void)
{
-#if NUM_LEDS >= 1
+#if LED_CNT >= 1
#if LED_DIR == 1
LED_GPIO->ODR |= 1<<LED_PINNUM;
#else
@@ -63,7 +54,7 @@ void led_on(void)
void led_off(void)
{
-#if NUM_LEDS >= 1
+#if LED_CNT >= 1
#if LED_DIR == 1
LED_GPIO->ODR &= ~(1<<LED_PINNUM);
#else
@@ -74,7 +65,7 @@ void led_off(void)
void led_toggle(void)
{
-#if NUM_LEDS >= 1
+#if LED_CNT >= 1
LED_GPIO->ODR ^= 1<<LED_PINNUM;
#endif
}
diff --git a/lib/util.c b/lib/util.c
new file mode 100644
index 0000000..9cc397c
--- /dev/null
+++ b/lib/util.c
@@ -0,0 +1,35 @@
+/*
+ * spreadspace stm8 utils
+ *
+ *
+ * Copyright (C) 2013-2016 Christian Pointner <equinox@spreadspace.org>
+ *
+ * This file is part of spreadspace stm8 utils.
+ *
+ * spreadspace stm8 utils is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * spreadspace stm8 utils is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with spreadspace stm8 utils. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stm8s.h>
+
+#include "util.h"
+
+void cpu_init(void)
+{
+ CLK->CKDIVR = 0;
+}
+
+void swim_disable(void)
+{
+ CFG->GCR = CFG_GCR_SWD;
+}
diff --git a/lib/util.h b/lib/util.h
new file mode 100644
index 0000000..75e243e
--- /dev/null
+++ b/lib/util.h
@@ -0,0 +1,29 @@
+/*
+ * spreadspace stm8 utils
+ *
+ *
+ * Copyright (C) 2013-2016 Christian Pointner <equinox@spreadspace.org>
+ *
+ * This file is part of spreadspace stm8 utils.
+ *
+ * spreadspace stm8 utils is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * spreadspace stm8 utils is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with spreadspace stm8 utils. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef SPREADSTM8_util_h_INCLUDED
+#define SPREADSTM8_util_h_INCLUDED
+
+void cpu_init(void);
+void swim_disable(void);
+
+#endif