aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcoveeneman <marco-veeneman@hotmail.com>2016-10-08 17:57:37 +0200
committermarcoveeneman <marco-veeneman@hotmail.com>2016-10-08 17:57:37 +0200
commiteceaf26f2112fe7f09af03a51f159c927127457b (patch)
tree7b0b6637b728b67458c564f338d0528e0d1e84fb
parentfaeb101f5e5481ed4fd1c3c16edc04f1ac2ece1a (diff)
downloadChibiOS-Contrib-eceaf26f2112fe7f09af03a51f159c927127457b.tar.gz
ChibiOS-Contrib-eceaf26f2112fe7f09af03a51f159c927127457b.tar.bz2
ChibiOS-Contrib-eceaf26f2112fe7f09af03a51f159c927127457b.zip
st driver only works in periodic mode for now.
-rw-r--r--os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h b/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h
index 35bf008..027304b 100644
--- a/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h
+++ b/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h
@@ -202,7 +202,11 @@ extern "C" {
*/
static inline systime_t st_lld_get_counter(void)
{
+#if OSAL_ST_MODE == OSAL_ST_MODE_FREERUNNING
return (systime_t) (((systime_t) 0xffffffff) - TIVA_ST_TIM->TAR);
+#else
+ return 0;
+#endif
}
/**
@@ -216,9 +220,11 @@ static inline systime_t st_lld_get_counter(void)
*/
static inline void st_lld_start_alarm(systime_t time)
{
+#if OSAL_ST_MODE == OSAL_ST_MODE_FREERUNNING
TIVA_ST_TIM->TAMATCHR = (systime_t) (((systime_t) 0xffffffff) - time);
TIVA_ST_TIM->ICR = TIVA_ST_TIM->MIS;
TIVA_ST_TIM->IMR = GPTM_IMR_TAMIM;
+#endif
}
/**
@@ -228,7 +234,9 @@ static inline void st_lld_start_alarm(systime_t time)
*/
static inline void st_lld_stop_alarm(void)
{
+#if OSAL_ST_MODE == OSAL_ST_MODE_FREERUNNING
TIVA_ST_TIM->IMR = 0;
+#endif
}
/**
@@ -240,7 +248,9 @@ static inline void st_lld_stop_alarm(void)
*/
static inline void st_lld_set_alarm(systime_t time)
{
+#if OSAL_ST_MODE == OSAL_ST_MODE_FREERUNNING
TIVA_ST_TIM->TAMATCHR = (systime_t) (((systime_t) 0xffffffff) - time);
+#endif
}
/**
@@ -252,7 +262,11 @@ static inline void st_lld_set_alarm(systime_t time)
*/
static inline systime_t st_lld_get_alarm(void)
{
+#if OSAL_ST_MODE == OSAL_ST_MODE_FREERUNNING
return (systime_t) (((systime_t)0xffffffff) - TIVA_ST_TIM->TAMATCHR);
+#else
+ return 0;
+#endif
}
/**
@@ -266,7 +280,11 @@ static inline systime_t st_lld_get_alarm(void)
*/
static inline bool st_lld_is_alarm_active(void)
{
+#if OSAL_ST_MODE == OSAL_ST_MODE_FREERUNNING
return (bool) ((TIVA_ST_TIM->IMR & GPTM_IMR_TAMIM) !=0);
+#else
+ return false;
+#endif
}
#endif /* HAL_ST_LLD_H */