www.dftb.net > STM8怎么设置定时器TIM1的10ms基准

STM8怎么设置定时器TIM1的10ms基准

假设12M晶振,使用STM8外设库实现 void timer1(void) { TIM1_DeInit(); TIM1_TimeBaseInit(12000, TIM1_COUNTERMODE_UP,10,0);//10ms TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); TIM1_Cmd(ENABLE); }

固件库里面有的,另外你把寄存器都写成零是不对的,应该把使能位置零。

把其它地方的内存用少点,全局变量设小点,堆栈也弄小点,应该就可以编译进去了。你没使用这变量,编译器件不会给它分配空间,所以能地,一旦你使用该变量,就会报错,因为此时分配不过来了。 查看原帖>>

在程序完全正确的情况下,还要根据所用的编程软件设置选项字节的。

TIM1->EGR=0x01;//初始化TIM1 TIM1时基初始化 TIM1->EGR|=0x20;//重新初始化TIM1 TIM1->PSCRH=0; //预分频 设置PWM频率 TIM1->PSCRL=0; TIM1->ARRH=0x0F; //设定重装载值 TIM1->ARRL=0x9F; TIM1->CR1=0x80;//边沿对齐,向上计数,带缓冲 TIM1->RCR...

void TIM1_Config(void) { TIM1_DeInit(); TIM1_TimeBaseInit(15, TIM1_COUNTERMODE_UP, 65535, 0);//600 Second TIM1_ITConfig(TIM1_IT_UPDATE, DISABLE); TIM1_ARRPreloadConfig(ENABLE); TIM1_Cmd(DISABLE); } void TIM2_Config(void) { TIM2...

void TIM1_Config(void) { TIM1_DeInit(); TIM1_TimeBaseInit(15, TIM1_COUNTERMODE_UP, 65535, 0);//600 Second TIM1_ITConfig(TIM1_IT_UPDATE, DISABLE); TIM1_ARRPreloadConfig(ENABLE); TIM1_Cmd(DISABLE); } void TIM2_Config(void) { TIM2...

TIM1_EGR=0x01;//初始化TIM1TIM1时基初始化TIM1_EGR|=0x20;//重新初始化TIM1TIM1_PSCRH=0;//预分频设置PWM频率TIM1_PSCRL=0;TIM1_ARRH=0x0F;//设定重装载值TIM1_ARRL=0x9F;TIM1_CR1=0x80;//边沿对齐,向上计数,带缓冲TIM1_RCR=0x01;//重复计数器T...

STM8 PWM模式 STM8的脉冲宽度调制(PWM)模式可以产生一个由TIM1_ARR寄存器确定频率、由TIM1_CCRi寄存器确定占空比的信号。 在TIM1_CCMRi寄存器中的OCiM位写入'110'(PWM模式1)或'111'(PWM模式2),能够独立地设置每个OCi输出通道产生一路PWM。

//用固件库方便些#include "stm8s_lib.h"#define CCR1_Val ((u16)2047) #define CCR2_Val ((u16)1535) #define CCR3_Val ((u16)1023) #define CCR4_Val ((u16)511) void main(void) { /* TIM1 Peripheral Configuration */ TIM1_DeInit(); /* Ti...

网站地图

All rights reserved Powered by www.dftb.net

copyright ©right 2010-2021。
www.dftb.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com