Skip to content

Commit 4511c15

Browse files
committed
split wiring_digital.c
1 parent 6fdb60a commit 4511c15

9 files changed

Lines changed: 307 additions & 300 deletions

File tree

sduino/hardware/sduino/stm8/cores/sduino/wiring_digital.c

Lines changed: 0 additions & 300 deletions
This file was deleted.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include "wiring_digital.c.h"
2+
/**
3+
* timer capture/compare mode register to control PWM mode
4+
*/
5+
const uc_p ccmrx[NUM_TIMERS]={
6+
#ifdef NEED_TIMER_11_12
7+
TIM1->CCMR1, /* for TIMER11 */
8+
TIM1->CCMR2, /* for TIMER12 */
9+
#endif
10+
TIM1->CCMR3, /* for TIMER13 */
11+
TIM1->CCMR4, /* for TIMER14 */
12+
TIM2->CCMR1, /* for TIMER21 */
13+
TIM2->CCMR2, /* for TIMER22 */
14+
#ifdef NEED_TIMER_23
15+
TIM2->CCMR3, /* for TIMER23 */
16+
#endif
17+
#ifdef NEED_TIMER_31_32
18+
TIM3->CCMR1, /* for TIMER31 */
19+
TIM3->CCMR2 /* for TIMER32 */
20+
#endif
21+
};
22+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#include "wiring_digital.c.h"
2+
/**
3+
* CCER register for each timer channel.
4+
*
5+
* Each 8-bit-register can contain the bits for two channels, so in addition to
6+
* the register address itself you also need the individual offset(s) of the
7+
* bit(s) you want to access.
8+
*/
9+
const uc_p ccerx[NUM_TIMERS]={
10+
#ifdef NEED_TIMER_11_12
11+
TIM1->CCER1, /* for TIMER11 */
12+
TIM1->CCER1, /* for TIMER12 */
13+
#endif
14+
TIM1->CCER2, /* for TIMER13 */
15+
TIM1->CCER2, /* for TIMER14 */
16+
TIM2->CCER1, /* for TIMER21 */
17+
TIM2->CCER1, /* for TIMER22 */
18+
#ifdef NEED_TIMER_23
19+
TIM2->CCER2, /* for TIMER23 */
20+
#endif
21+
#ifdef NEED_TIMER_31_32
22+
TIM3->CCER1, /* for TIMER31 */
23+
TIM3->CCER1 /* for TIMER32 */
24+
#endif
25+
};
26+
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include "wiring_digital.c.h"
2+
/**
3+
* These Bits have to be set to 0 in the timer channel's CCER
4+
* (Capture/compare enable register) to disable the output, so that the
5+
* physical pin is not driven by the timer.
6+
*
7+
* @see
8+
* RM0016 Reference Manual
9+
* STM8S Series and STM8AF Series 8-bit microcontrollers
10+
* DocID14587 Rev 14 (Oct 2017)
11+
* Table 38. Output control for complementary OCi and OCiN channels with break
12+
* feature
13+
*/
14+
const unsigned char DISABLE_TIMER_OUTP_MASK[NUM_TIMERS]={
15+
#ifdef NEED_TIMER_11_12
16+
(1 << 0) | (1 << 2), /* for TIMER11 */
17+
(1 << 4) | (1 << 6), /* for TIMER12 */
18+
#endif
19+
(1 << 0) | (1 << 2), /* for TIMER13 */
20+
(1 << 4), /* for TIMER14 */
21+
(1 << 0), /* for TIMER21 */
22+
(1 << 4), /* for TIMER22 */
23+
#ifdef NEED_TIMER_23
24+
(1 << 0), /* for TIMER23 */
25+
#endif
26+
#ifdef NEED_TIMER_31_32
27+
(1 << 0), /* for TIMER31 */
28+
(1 << 4) /* for TIMER32 */
29+
#endif
30+
};
31+
32+

0 commit comments

Comments
 (0)