/**
******************************************************************************
* @file stm8s_tim1.c
* @author MCD Application Team
* @version V2.2.0
* @date 30-September-2014
* @brief This file contains all the functions for the TIM1 peripheral.
******************************************************************************
* @attention
*
* <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "stm8s_tim1.h"
/** @addtogroup STM8S_StdPeriph_Driver
* @{
*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
static void TI1_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
static void TI2_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
static void TI3_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
static void TI4_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
/**
* @addtogroup TIM1_Public_Functions
* @{
*/
/**
* @brief Deinitializes the TIM1 peripheral registers to their default reset values.
* @param None
* @retval None
*/
void TIM1_DeInit(void)
{
TIM1->CR1 = TIM1_CR1_RESET_VALUE;
TIM1->CR2 = TIM1_CR2_RESET_VALUE;
TIM1->SMCR = TIM1_SMCR_RESET_VALUE;
TIM1->ETR = TIM1_ETR_RESET_VALUE;
TIM1->IER = TIM1_IER_RESET_VALUE;
TIM1->SR2 = TIM1_SR2_RESET_VALUE;
/* Disable channels */
TIM1->CCER1 = TIM1_CCER1_RESET_VALUE;
TIM1->CCER2 = TIM1_CCER2_RESET_VALUE;
/* Configure channels as inputs: it is necessary if lock level is equal to 2 or 3 */
TIM1->CCMR1 = 0x01;
TIM1->CCMR2 = 0x01;
TIM1->CCMR3 = 0x01;
TIM1->CCMR4 = 0x01;
/* Then reset channel registers: it also works if lock level is equal to 2 or 3 */
TIM1->CCER1 = TIM1_CCER1_RESET_VALUE;
TIM1->CCER2 = TIM1_CCER2_RESET_VALUE;
TIM1->CCMR1 = TIM1_CCMR1_RESET_VALUE;
TIM1->CCMR2 = TIM1_CCMR2_RESET_VALUE;
TIM1->CCMR3 = TIM1_CCMR3_RESET_VALUE;
TIM1->CCMR4 = TIM1_CCMR4_RESET_VALUE;
TIM1->CNTRH = TIM1_CNTRH_RESET_VALUE;
TIM1->CNTRL = TIM1_CNTRL_RESET_VALUE;
TIM1->PSCRH = TIM1_PSCRH_RESET_VALUE;
TIM1->PSCRL = TIM1_PSCRL_RESET_VALUE;
TIM1->ARRH = TIM1_ARRH_RESET_VALUE;
TIM1->ARRL = TIM1_ARRL_RESET_VALUE;
TIM1->CCR1H = TIM1_CCR1H_RESET_VALUE;
TIM1->CCR1L = TIM1_CCR1L_RESET_VALUE;
TIM1->CCR2H = TIM1_CCR2H_RESET_VALUE;
TIM1->CCR2L = TIM1_CCR2L_RESET_VALUE;
TIM1->CCR3H = TIM1_CCR3H_RESET_VALUE;
TIM1->CCR3L = TIM1_CCR3L_RESET_VALUE;
TIM1->CCR4H = TIM1_CCR4H_RESET_VALUE;
TIM1->CCR4L = TIM1_CCR4L_RESET_VALUE;
TIM1->OISR = TIM1_OISR_RESET_VALUE;
TIM1->EGR = 0x01; /* TIM1_EGR_UG */
TIM1->DTR = TIM1_DTR_RESET_VALUE;
TIM1->BKR = TIM1_BKR_RESET_VALUE;
TIM1->RCR = TIM1_RCR_RESET_VALUE;
TIM1->SR1 = TIM1_SR1_RESET_VALUE;
}
/**
* @brief Initializes the TIM1 Time Base Unit according to the specified parameters.
* @param TIM1_Prescaler specifies the Prescaler value.
* @param TIM1_CounterMode specifies the counter mode from @ref TIM1_CounterMode_TypeDef .
* @param TIM1_Period specifies the Period value.
* @param TIM1_RepetitionCounter specifies the Repetition counter value
* @retval None
*/
void TIM1_TimeBaseInit(uint16_t TIM1_Prescaler,
TIM1_CounterMode_TypeDef TIM1_CounterMode,
uint16_t TIM1_Period,
uint8_t TIM1_RepetitionCounter)
{
/* Check parameters */
assert_param(IS_TIM1_COUNTER_MODE_OK(TIM1_CounterMode));
/* Set the Autoreload value */
TIM1->ARRH = (uint8_t)(TIM1_Period >> 8);
TIM1->ARRL = (uint8_t)(TIM1_Period);
/* Set the Prescaler value */
TIM1->PSCRH = (uint8_t)(TIM1_Prescaler >> 8);
TIM1->PSCRL = (uint8_t)(TIM1_Prescaler);
/* Select the Counter Mode */
TIM1->CR1 = (uint8_t)((uint8_t)(TIM1->CR1 & (uint8_t)(~(TIM1_CR1_CMS | TIM1_CR1_DIR)))
| (uint8_t)(TIM1_CounterMode));
/* Set the Repetition Counter value */
TIM1->RCR = TIM1_RepetitionCounter;
}
/**
* @brief Initializes the TIM1 Channel1 according to the specified parameters.
* @param TIM1_OCMode specifies the Output Compare mode from
* @ref TIM1_OCMode_TypeDef.
* @param TIM1_OutputState specifies the Output State from
* @ref TIM1_OutputState_TypeDef.
* @param TIM1_OutputNState specifies the Complementary Output State
* from @ref TIM1_OutputNState_TypeDef.
* @param TIM1_Pulse specifies the Pulse width value.
* @param TIM1_OCPolarity specifies the Output Compare Polarity from
* @ref TIM1_OCPolarity_TypeDef.
* @param TIM1_OCNPolarity specifies the Complementary Output Compare Polarity
* from @ref TIM1_OCNPolarity_TypeDef.
* @param TIM1_OCIdleState specifies the Output Compare Idle State from
* @ref TIM1_OCIdleState_TypeDef.
* @param TIM1_OCNIdleState specifies the Complementary Output Compare Idle
* State from @ref TIM1_OCIdleState_TypeDef.
* @retval None
*/
void TIM1_OC1Init(TIM1_OCMode_TypeDef TIM1_OCMode,
TIM1_OutputState_TypeDef TIM1_OutputState,
TIM1_OutputNState_TypeDef TIM1_OutputNState,
uint16_t TIM1_Pulse,
TIM1_OCPolarity_TypeDef TIM1_OCPolarity,
TIM1_OCNPolarity_TypeDef TIM1_OCNPolarity,
TIM1_OCIdleState_TypeDef TIM1_OCIdleState,
TIM1_OCNIdleState_TypeDef TIM1_OCNIdleState)
{
/* Check the parameters */
assert_param(IS_TIM1_OC_MODE_OK(TIM1_OCMode));
assert_param(IS_TIM1_OUTPUT_STATE_OK(TIM1_OutputState));
assert_param(IS_TIM1_OUTPUTN_STATE_OK(TIM1_OutputNState));
assert_param(IS_TIM1_OC_POLARITY_OK(TIM1_OCPolarity));
assert_param(IS_TIM1_OCN_POLARITY_OK(TIM1_OCNPolarity));
assert_param(IS_TIM1_OCIDLE_STATE_OK(TIM1_OCIdleState));
assert_param(IS_TIM1_OCNIDLE_STATE_OK(TIM1_OCNIdleState));
/* Disable the Channel 1: Reset the CCE Bit, Set the Output State ,
the Output N State, the Output Polarity & the Output N Polarity*/
TIM1->CCER1 &= (uint8_t)(~( TIM1_CCER1_CC1E | TIM1_CCER1_CC1NE
| TIM1_CCER1_CC1P | TIM1_CCER1_CC1NP));
/* Set the Output State & Set the Output N State & Set the Output Polarity &
Set the Output N Polarity */
TIM1->CCER1 |= (uint8_t)((uint8_t)((uint8_t)(TIM1_OutputState & TIM1_CCER1_CC1E)
| (uint8_t)(TIM1_OutputNState & TIM1_CCER1_CC1NE))
| (uint8_t)( (uint8_t)(TIM1_OCPolarity & TIM1_CCER1_CC1P)
| (uint8_t)(TIM1_OCNPolarity & TIM1_CCER1_CC1NP)))
没有合适的资源?快使用搜索试试~ 我知道了~
STM8S208单片机+.2.4寸LCD 触摸屏区域触摸划线和更改画笔颜色实验 软件程序源码.rar
共209个文件
h:50个
c:49个
o:39个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 131 浏览量
2022-12-10
15:52:15
上传
评论
收藏 2.11MB RAR 举报
温馨提示
STM8S208单片机+.2.4寸LCD 触摸屏区域触摸划线和更改画笔颜色实验 软件程序源码 int main(void) { BSP_Configuration();//初始化硬件 delay_ms(1000); Board_Test(); } void Board_Test(void) { while(1) { LCD_Drawing(); } } /********************************************************************************************************** * 函 数 名: BSP_Configuration * 功能说明: 初始化硬件设备。只需要调用一次。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。 * 形 参:无 * 返 回 值: 无 *********************************************************************
资源推荐
资源详情
资源评论
收起资源包目录
STM8S208单片机+.2.4寸LCD 触摸屏区域触摸划线和更改画笔颜色实验 软件程序源码.rar (209个子文件)
LY-STM8.Debug.cspy.bat 2KB
LY-STM8.cspy.bat 1KB
LY-STM8.pbd.browse 706KB
stm8s_tim1.c 82KB
stm8s_tim5.c 48KB
stm8s_can.c 45KB
stm8s_tim2.c 45KB
stm8s_tim3.c 36KB
stm8s_i2c.c 32KB
stm8s_uart4.c 28KB
stm8s_uart2.c 27KB
stm8s_flash.c 25KB
stm8s_uart1.c 25KB
stm8s_uart3.c 23KB
stm8s_adc1.c 22KB
stm8s_clk.c 21KB
stm8s_tim6.c 15KB
stm8s_spi.c 14KB
gui.c 14KB
stm8s_it.c 13KB
stm8s_adc2.c 13KB
stm8s_tim4.c 12KB
stm8s_itc.c 11KB
ili9328.c 11KB
stm8s_gpio.c 8KB
vs838.c 7KB
stm8s_awu.c 6KB
xpt2046.c 6KB
stm8s_exti.c 6KB
w25x16.c 6KB
Radio.c 5KB
stm8s_beep.c 5KB
stm8s_wwdg.c 4KB
stm8s_iwdg.c 3KB
stm8s_rst.c 3KB
AT24Cxx.c 3KB
can.c 3KB
DS18B20.c 3KB
usart.c 2KB
dht11.c 2KB
PCF8563.c 2KB
I2C.c 2KB
main.c 2KB
hcsr04.c 2KB
led.c 1KB
tm1650.c 1KB
adc.c 964B
key.c 880B
jdq.c 864B
pbdata.c 856B
spi.c 661B
tim.c 642B
DS18B20.pbi.cout 13KB
PCF8563.pbi.cout 13KB
AT24Cxx.pbi.cout 13KB
tm1650.pbi.cout 13KB
hcsr04.pbi.cout 13KB
pbdata.pbi.cout 13KB
w25x16.pbi.cout 13KB
usart.pbi.cout 13KB
Radio.pbi.cout 13KB
dht11.pbi.cout 13KB
vs838.pbi.cout 13KB
can.pbi.cout 13KB
adc.pbi.cout 13KB
tim.pbi.cout 13KB
led.pbi.cout 13KB
key.pbi.cout 13KB
jdq.pbi.cout 13KB
I2C.pbi.cout 13KB
stm8s_uart3.pbi.cout 13KB
stm8s_flash.pbi.cout 13KB
stm8s_uart1.pbi.cout 13KB
stm8s_adc2.pbi.cout 13KB
stm8s_gpio.pbi.cout 13KB
stm8s_tim2.pbi.cout 13KB
stm8s_tim1.pbi.cout 13KB
stm8s_clk.pbi.cout 13KB
stm8s_can.pbi.cout 13KB
stm8s_spi.pbi.cout 13KB
gui.pbi.cout 13KB
stm8s_exti.pbi.cout 13KB
stm8s_it.pbi.cout 13KB
ili9328.pbi.cout 13KB
xpt2046.pbi.cout 13KB
main.pbi.cout 13KB
spi.pbi.cout 13KB
LY-STM8.dbgdt 8KB
LY-STM8.dep 22KB
LY-STM8.dni 2KB
LY-STM8.ewd 12KB
Backup of LY-STM8.ewd 11KB
LY-STM8.ewp 44KB
Backup of LY-STM8.ewp 44KB
LY-STM8.ewt 110KB
LY-STM8.eww 161B
stm8s.h 119KB
stm8s_i2c.h 27KB
stm8s_tim1.h 26KB
stm8s_can.h 25KB
共 209 条
- 1
- 2
- 3
资源评论
GJZGRB
- 粉丝: 1502
- 资源: 6226
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功