aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
authorpcirillo <pcirillo@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-04-10 09:56:34 +0000
committerpcirillo <pcirillo@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-04-10 09:56:34 +0000
commit2114bc97d1daebe4240ee670813ff3586e24bdf9 (patch)
tree3dba2619c5aa8b2a79bfe68895e75ac60850e608 /os
parent76b3f122ac0faac96d8b7a47254a497eebaecf17 (diff)
downloadChibiOS-2114bc97d1daebe4240ee670813ff3586e24bdf9.tar.gz
ChibiOS-2114bc97d1daebe4240ee670813ff3586e24bdf9.tar.bz2
ChibiOS-2114bc97d1daebe4240ee670813ff3586e24bdf9.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5580 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r--os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h19
-rw-r--r--os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c36
-rw-r--r--os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h30
3 files changed, 34 insertions, 51 deletions
diff --git a/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h b/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h
index cf1f267b8..5684bca37 100644
--- a/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h
+++ b/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h
@@ -111,7 +111,6 @@
* @name Configuration options
* @{
*/
-#if SPC5_HAS_FLEXPWM0 || defined(__DOXYGEN__)
/**
* @brief PWMD1 driver enable switch.
* @details If set to @p TRUE the support for PWMD1 is included.
@@ -197,9 +196,7 @@
#define SPC5_PWM_FLEXPWM0_STOP_PCTL (SPC5_ME_PCTL_RUN(0) | \
SPC5_ME_PCTL_LP(0))
#endif
-#endif
-#if SPC5_HAS_FLEXPWM1 || defined(__DOXYGEN__)
/**
* @brief PWMD5 driver enable switch.
* @details If set to @p TRUE the support for PWMD5 is included.
@@ -285,18 +282,10 @@
#define SPC5_PWM_FLEXPWM1_STOP_PCTL (SPC5_ME_PCTL_RUN(0) | \
SPC5_ME_PCTL_LP(0))
#endif
-#endif
/*===========================================================================*/
/* Configuration checks. */
/*===========================================================================*/
-#if !SPC5_HAS_FLEXPWM0
-#error "FlexPWM0 not present in the selected device"
-#endif
-
-#if !SPC5_HAS_FLEXPWM1
-#error "FlexPWM1 not present in the selected device"
-#endif
#define SPC5_PWM_USE_FLEXPWM0 (SPC5_PWM_USE_SMOD0 || \
SPC5_PWM_USE_SMOD1 || \
@@ -308,6 +297,14 @@
SPC5_PWM_USE_SMOD6 || \
SPC5_PWM_USE_SMOD7)
+#if !SPC5_HAS_FLEXPWM0 && SPC5_PWM_USE_FLEXPWM0
+#error "FlexPWM0 not present in the selected device"
+#endif
+
+#if !SPC5_HAS_FLEXPWM1 && SPC5_PWM_USE_FLEXPWM1
+#error "FlexPWM1 not present in the selected device"
+#endif
+
#if !SPC5_PWM_USE_FLEXPWM0 && !SPC5_PWM_USE_FLEXPWM1
#error "PWM driver activated but no PWM peripheral assigned"
#endif
diff --git a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c
index 06794be62..ff5d54deb 100644
--- a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c
+++ b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c
@@ -223,10 +223,10 @@ static void icu_lld_serve_interrupt(ICUDriver *icup) {
else {
icup->etimerp->CHANNEL[icup->smod_number].STS.B.ICF1 = 1U;
if (icup->etimerp->CHANNEL[icup->smod_number].CTRL3.B.C1FCNT == 2) {
- period = icup->etimer->CHANNEL[icup->smod_number].CAPT1.R;
- period = icup->etimer->CHANNEL[icup->smod_number].CAPT1.R;
+ period = icup->etimerp->CHANNEL[icup->smod_number].CAPT1.R;
+ period = icup->etimerp->CHANNEL[icup->smod_number].CAPT1.R;
} else {
- period = icup->etimer->CHANNEL[icup->smod_number].CAPT1.R;
+ period = icup->etimerp->CHANNEL[icup->smod_number].CAPT1.R;
}
_icu_isr_invoke_period_cb(icup);
}
@@ -240,10 +240,10 @@ static void icu_lld_serve_interrupt(ICUDriver *icup) {
else {
icup->etimerp->CHANNEL[icup->smod_number].STS.B.ICF2 = 1U;
if (icup->etimerp->CHANNEL[icup->smod_number].CTRL3.B.C2FCNT == 2) {
- width = icup->etimer->CHANNEL[icup->smod_number].CAPT2.R;
- width = icup->etimer->CHANNEL[icup->smod_number].CAPT2.R;
+ width = icup->etimerp->CHANNEL[icup->smod_number].CAPT2.R;
+ width = icup->etimerp->CHANNEL[icup->smod_number].CAPT2.R;
} else {
- width = icup->etimer->CHANNEL[icup->smod_number].CAPT2.R;
+ width = icup->etimerp->CHANNEL[icup->smod_number].CAPT2.R;
}
_icu_isr_invoke_width_cb(icup);
}
@@ -256,20 +256,20 @@ static void icu_lld_serve_interrupt(ICUDriver *icup) {
if ((sr & 0x0040) != 0) { /* ICF1 */
icup->etimerp->CHANNEL[icup->smod_number].STS.B.ICF1 = 1U;
if (icup->etimerp->CHANNEL[icup->smod_number].CTRL3.B.C1FCNT == 2) {
- period = icup->etimer->CHANNEL[icup->smod_number].CAPT1.R;
- period = icup->etimer->CHANNEL[icup->smod_number].CAPT1.R;
+ period = icup->etimerp->CHANNEL[icup->smod_number].CAPT1.R;
+ period = icup->etimerp->CHANNEL[icup->smod_number].CAPT1.R;
} else {
- period = icup->etimer->CHANNEL[icup->smod_number].CAPT1.R;
+ period = icup->etimerp->CHANNEL[icup->smod_number].CAPT1.R;
}
_icu_isr_invoke_period_cb(icup);
}
else if ((sr & 0x0080) != 0) { /* ICF2 */
icup->etimerp->CHANNEL[icup->smod_number].STS.B.ICF2 = 1U;
if (icup->etimerp->CHANNEL[icup->smod_number].CTRL3.B.C2FCNT == 2) {
- width = icup->etimer->CHANNEL[icup->smod_number].CAPT2.R;
- width = icup->etimer->CHANNEL[icup->smod_number].CAPT2.R;
+ width = icup->etimerp->CHANNEL[icup->smod_number].CAPT2.R;
+ width = icup->etimerp->CHANNEL[icup->smod_number].CAPT2.R;
} else {
- width = icup->etimer->CHANNEL[icup->smod_number].CAPT2.R;
+ width = icup->etimerp->CHANNEL[icup->smod_number].CAPT2.R;
}
_icu_isr_invoke_width_cb(icup);
}
@@ -970,20 +970,12 @@ void icu_lld_init(void) {
*/
void icu_lld_start(ICUDriver *icup) {
- chDbgAssert((icup->config->channel == ICU_CHANNEL_1) ||
- (icup->config->channel == ICU_CHANNEL_2) ||
- (icup->config->channel == ICU_CHANNEL_3) ||
- (icup->config->channel == ICU_CHANNEL_4) ||
- (icup->config->channel == ICU_CHANNEL_5) ||
- (icup->config->channel == ICU_CHANNEL_6),
- "icu_lld_start(), #1", "invalid input");
-
chDbgAssert(icu_active_submodules0 < 6, "icu_lld_start(), #1",
"too many submodules");
chDbgAssert(icu_active_submodules1 < 6, "icu_lld_start(), #1",
- "too many submodules");
+ "too many submodules");
chDbgAssert(icu_active_submodules2 < 6, "icu_lld_start(), #1",
- "too many submodules");
+ "too many submodules");
if (icup->state == ICU_STOP) {
#if SPC5_ICU_USE_SMOD0
diff --git a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h
index f8c4b13fd..3f445f84a 100644
--- a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h
+++ b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h
@@ -94,7 +94,6 @@
* @name Configuration options
* @{
*/
-#if SPC5_HAS_ETIMER0 || defined(__DOXYGEN__)
/**
* @brief ICUD1 driver enable switch.
* @details If set to @p TRUE the support for ICUD1 is included.
@@ -177,9 +176,7 @@
#define SPC5_ICU_ETIMER0_STOP_PCTL (SPC5_ME_PCTL_RUN(0) | \
SPC5_ME_PCTL_LP(0))
#endif
-#endif
-#if SPC5_HAS_ETIMER1 || defined(__DOXYGEN__)
/**
* @brief ICUD6 driver enable switch.
* @details If set to @p TRUE the support for ICUD6 is included.
@@ -262,9 +259,7 @@
#define SPC5_ICU_ETIMER1_STOP_PCTL (SPC5_ME_PCTL_RUN(0) | \
SPC5_ME_PCTL_LP(0))
#endif
-#endif
-#if SPC5_HAS_ETIMER2 || defined(__DOXYGEN__)
/**
* @brief ICUD13 driver enable switch.
* @details If set to @p TRUE the support for ICUD13 is included.
@@ -347,25 +342,12 @@
#define SPC5_ICU_ETIMER2_STOP_PCTL (SPC5_ME_PCTL_RUN(0) | \
SPC5_ME_PCTL_LP(0))
#endif
-#endif
/** @} */
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
-#if !SPC5_HAS_ETIMER0
-#error "ETIMER0 not present in the selected device"
-#endif
-
-#if !SPC5_HAS_ETIMER1
-#error "ETIMER1 not present in the selected device"
-#endif
-
-#if !SPC5_HAS_ETIMER2
-#error "ETIMER2 not present in the selected device"
-#endif
-
#define SPC5_ICU_USE_ETIMER0 (SPC5_ICU_USE_SMOD0 || \
SPC5_ICU_USE_SMOD1 || \
SPC5_ICU_USE_SMOD2 || \
@@ -387,6 +369,18 @@
SPC5_ICU_USE_SMOD16 || \
SPC5_ICU_USE_SMOD17)
+#if !SPC5_HAS_ETIMER0 && SPC5_ICU_USE_ETIMER0
+#error "ETIMER0 not present in the selected device"
+#endif
+
+#if !SPC5_HAS_ETIMER1 && SPC5_ICU_USE_ETIMER1
+#error "ETIMER1 not present in the selected device"
+#endif
+
+#if !SPC5_HAS_ETIMER2 && SPC5_ICU_USE_ETIMER2
+#error "ETIMER2 not present in the selected device"
+#endif
+
#if !SPC5_ICU_USE_ETIMER0 && !SPC5_ICU_USE_ETIMER1 && !SPC5_ICU_USE_ETIMER2
#error "ICU driver activated but no SMOD peripheral assigned"
#endif