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); }

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

如果LockFlag的初始值为0,就不会进入if (LockFlag)条件中的LockFlag++,所以LockFlag变量就一直不会自加,你应该把自加代码放在if (LockFlag)外面,如下: if(LockFlag) { } LockFlag++;

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

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

//用固件库方便些#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...

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...

这个真心不会,没学过,抱歉

网站地图

All rights reserved Powered by www.dftb.net

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