Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/thirdpin/libopencm3.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Revaillot <revaillot@archos.com>2019-01-17 20:27:48 +0300
committerGuillaume Revaillot <revaillot@archos.com>2019-06-13 13:04:58 +0300
commit8173fb7249f0cd4043a088224f4f6f13d20c7b80 (patch)
treef69bc060b1769b1a63574f9a88a57820b3ad2b15 /include/libopencm3/stm32
parent74526f00ccae51010550d7e90313b67a31440320 (diff)
stm32g0: add timer.
Only tim2/3/7/14 have been really tested yet - but the others should work as well.
Diffstat (limited to 'include/libopencm3/stm32')
-rw-r--r--include/libopencm3/stm32/g0/timer.h74
-rw-r--r--include/libopencm3/stm32/timer.h2
2 files changed, 76 insertions, 0 deletions
diff --git a/include/libopencm3/stm32/g0/timer.h b/include/libopencm3/stm32/g0/timer.h
new file mode 100644
index 00000000..1f102ba8
--- /dev/null
+++ b/include/libopencm3/stm32/g0/timer.h
@@ -0,0 +1,74 @@
+/** @defgroup timer_defines Timer Defines
+ *
+ * @ingroup STM32G0xx_defines
+ *
+ * @brief <b>Defined Constants and Types for the STM32G0xx Timers</b>
+ *
+ * @version 1.0.0
+ *
+ * LGPL License Terms @ref lgpl_license
+ * */
+/*
+ * This file is part of the libopencm3 project.
+ *
+ * Copyright (C) 2019 Guillaume Revaillot <g.revaillot@gmail.com>
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This library 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef LIBOPENCM3_TIMER_H
+#define LIBOPENCM3_TIMER_H
+
+#include <libopencm3/stm32/common/timer_common_all.h>
+
+/**@{*/
+
+/* Option Register (TIMx_OR1) */
+#define TIM_OR1(tim_base) MMIO32((tim_base) + 0x50)
+#define TIM2_OR1 TIM_OR1(TIM2)
+#define TIM3_OR1 TIM_OR1(TIM3)
+
+/* Alternate Function (TIMx_AF1) */
+#define TIM_AF1(tim_base) MMIO32((tim_base) + 0x60)
+#define TIM2_AF1 TIM_AF1(TIM2)
+#define TIM3_AF1 TIM_AF1(TIM3)
+#define TIM16_AF1 TIM_AF1(TIM16)
+#define TIM17_AF1 TIM_AF1(TIM17)
+
+/* Input Selection Register (TIMx_TISEL) */
+#define TIM_TISEL(tim_base) MMIO32((tim_base) + 0x68)
+#define TIM2_TISEL TIM_TISEL(TIM2)
+#define TIM3_TISEL TIM_TISEL(TIM3)
+#define TIM14_TISEL TIM_TISEL(TIM14)
+#define TIM16_TISEL TIM_TISEL(TIM16)
+#define TIM17_TISEL TIM_TISEL(TIM17)
+
+/* --- TIMx_OR1 values ---------------------------------------------------- */
+
+/* OCREF_CLR: ocref_clr Source Selection */
+#define TIM_OR1_OCREF_CLR (1 << 0)
+
+/** @defgroup tim_or1_ocref_clr TIM_OR1_OCREF_CLR Source Selection
+@{*/
+#define TIM_OR1_OCREF_CLR_COMP1 (0)
+#define TIM_OR1_OCREF_CLR_COMP2 (1)
+/**@}*/
+
+BEGIN_DECLS
+
+END_DECLS
+
+/**@}*/
+
+#endif
diff --git a/include/libopencm3/stm32/timer.h b/include/libopencm3/stm32/timer.h
index 3f16e797..4d1afc7a 100644
--- a/include/libopencm3/stm32/timer.h
+++ b/include/libopencm3/stm32/timer.h
@@ -40,6 +40,8 @@
# include <libopencm3/stm32/l1/timer.h>
#elif defined(STM32L4)
# include <libopencm3/stm32/l4/timer.h>
+#elif defined(STM32G0)
+# include <libopencm3/stm32/g0/timer.h>
#else
# error "stm32 family not defined."
#endif