系统功能
使用STM8定时器做1S定时,并使用LED作出简单指示!
硬件设计
本设计基于内部RC振荡器2M时钟作STM8定时器TIM4的时钟源进行1S定时!
LED控制电路原理图
软件设计
/*********************************************************************
目标系统: 基于STM8单片机
应用软件: Cosmic CxSTM8
*********************************************************************/
/* -------------------------------------------------------------------
实验内容:
使用STM8的定时器T1做1S定时,并使用PD口的LED指示灯做简单指示。
----------------------------------------------------------------------
硬件连接:
将PB口的LED指示灯使能开关切换到"ON"状态。
----------------------------------------------------------------------*/
#include unsigned char i=0;
#define DISP_DDR DDRD
#define DISP_PORT PORTD
void Init_Tim4(void)
{
TIM4_CR1=0x01;
//TIM4_IER=0x00;
TIM4_IER=0x01;
TIM4_EGR=0x01;
TIM4_CNTR=255;
TIM4_ARR=255;
TIM4_PSCR=0x07;
}
void Init_GPIO(void)
{
PD_DDR=0xff;
PD_CR1=0xff;
PD_CR2=0x00;
}
void main(void)
{
Init_GPIO();
Init_Tim4();
_asm("rim");
while (1);
}
@far @interrupt void TIM4_UPD_OVF_IRQHandler (void)
{
i++;
TIM4_SR=0x00;
if(i==61)
{
PD_ODR=PD_ODR^0x08;
i=0;
}
return;
}
系统调试
随着时间,LED不断的闪烁,改变定时器的定时时间,LED闪烁的速度加快!
关键字:STM8 定时器 中断程序
引用地址:
STM8 定时器中断程序
推荐阅读最新更新时间:2024-11-11 21:59
51单片机-定时器工作模式2
1.工作模式2的使用 这里我们顺便讲解一下定时器0的工作模式2,也就是使用“小试管”的方式,TMOD的初始化就为“TMOD=0x02;”。 我们知道工作模式2的最长溢出时间仅为256*(12/11059200)=0.000277秒=277微秒。 我们想实现间隔51ms的流水灯实验该怎么做,首先我们定义一个变量cnt用来记录每次的溢出次数,然后我们的定时时间为51微秒(因为最大定时只有278微秒),cnt记录的值等于1000的时候,证明时间已经过去了51ms,于是再去执行流水灯的任务。 我们已经知道工作模式2是不需要在溢出之后再填充初始值的,比如我们定时的时间为51微秒,那么计算出“距离溢出的刻度”就为47(实际计算
[单片机]
LPC1768之系统滴答定时器
滴答定时器可作为实时系统的滴答时钟。MDK新建工程完成后,添加core_me.h到工程,static __INLINE uint32_t SysTick_Config(uint32_t ticks),在core_m3.h文件中。初始化时候调用即可。然后直接添加定时器中断处理函数即可。 /* * main.c: the main file * NXP -- LPC1768 * * * Author : light * Date : 2012-4-16 * */ #include LPC17XX.h volatile uint32_t msTicks; /* counts 1ms t
[单片机]
AVR128的程序——定时器
#include iom128v.h #include macros.h #define uchar unsigned char #define uint unsigned int void timer1_init(void); uchar temp=0x01; void main(void) { uchar i,temp; DDRA = 0XFF; PORTA = 0XFF; DDRC = 0XFF; PORTC = 0XFF; DDRF |= 0X0E; PORTF |=
[单片机]
6.TouchGFX界面应用之定时器机制
在TouchGFX有一个类似于滴答定时器的函数,handleTickEvent()。 这一节我们使用handleTickEvent函数让图形动起来。 在形状中找圆,设置圆画板大小为500X500,起点坐标为260,50,圆心在画板坐标的250,250,设置圆弧的开始角度和终止进度,设置圆弧的半径和圆弧线的宽度(0表示全部填充),这样这个圆弧就创建好了, 我们再在圆弧的外面画一个完整的圆 生成代码,在Screen2View.hpp的Screen2View中加入两个变量和handleTickEvent函数,声明这个函数后,在程序执行时,会自动定时调用或者函数。 在Screen2View.cpp中定义这个函数
[单片机]
前后台系统的低功耗编程思想——STM8平台
1.前言 工作之后接触了“低功耗”,开始搜索各种各样的低功耗MCU。网络是一个非常自由的地方,你总可以看到各种关于哪个MCU功耗更低的论战,在这些论战中我查阅了几乎所有低功耗MCU的特性,例如MSP430、EFM32还有STM32L等,网络论战的核心便是哪款MCU的休眠电流更低。看多了资料我便发现,这些低功耗的MCU如何使用,低功耗MCU的程序编写和普通MCU编程有什么区别。 带着这些疑问我继续品味关于低功耗MCU的”论战“,直到我购买了《MSP430系列单片机系统工程设计与实践》。在该书中提到了低功耗MCU编程的基本思想,大致可以总结为: 1.善用节拍 2.消除阻塞 下面就结合STM8谈谈如何实践以上两
[单片机]
STM32F407 定时器四路PWM代码
/********CYSY_Kiti1013***********/ void TIM4_PWM_Init(u16 arr,u16 psc)//PD12 PD13 PD14 PD15 { RCC- APB1ENR|=1 2;//使能TIM4 RCC- AHB1ENR|=1 3;//使能GPIOD GPIO_Set(GPIOD,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPIO_Set(GPIOD,PIN13,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPI
[单片机]
STM32单片机的系统定时器初始化设置
正如之前文章所述,在使用外设功能时,都必须提前对其精心初始化才能使用其功能。 以下是系统定时器初始化的程序清单。 #include“stm32f10x_lib.h” unsigned char sys_nub;//系统定时器中断计数变量 //SysTick 设置 void SysTIck_Config(void) { //失能SysTIck定时器 SysTIck_CounterCmd(SysTIck_Counter_Disable); //失能SysTick中断 SysTick_ITConfig(DISABLE); //设置SysTick时钟源 SysTick_ClockSourceConfig(SysTick_Source_
[单片机]
AT89S52的看门狗定时器详情分析
AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。 AT89S52主要性能: 1、与MCS-51单片机产品兼容; 2、8K字节在系统可编程Flash存储器; 3、1000次擦写周期; 4、全静态操作:0Hz-33MHz; 5、三级加密程序存储器; 6、32个可编程I/O口线; 7、
[单片机]