历史上的今天
返回首页

历史上的今天

今天是:2025年02月23日(星期日)

正在发生

2021年02月23日 | TIMER2定时器不能进入中断的问题

2021-02-23 来源:eefocus

STM8S103的引脚封装图如下

是一个20管脚的51类型单片机,8Kflash 1kRAM。


STM8S207引脚封装如下

一个48引脚64KFLASH和6K的RAM,也是51单片机,但串口和定时器的功能多了。


从手册看,timer1是ADVANCED 定时器,timer 2 3是通用型定时器。


在移植过程中以为只要改动器件类型同时在stm8s.h内将


#ifndef __STM8S_H


#define __STM8S_H


#define STM8S207 //STM8S103


103注释掉并开通207的宏定义。


定时器初始化如下


void TIM1_Init(void)


{


TIM1_DeInit(); //定时器1相关寄存器复位


TIM1_TimeBaseInit(7, TIM1_COUNTERMODE_UP, 9999, 0); //中断时间10ms


// TIM1_TimeBaseInit(8, TIM1_COUNTERMODE_UP, 1500, 0); //中断时间ms


TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); //使能中断


TIM1_Cmd(ENABLE); //使能TIM1


}


void TIM2_Init(void)


{


TIM2_DeInit();


TIM2_TimeBaseInit(TIM2_PRESCALER_1, 125*20);//20ms中断


TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE); //使能中断


ITC_SetSoftwarePriority(ITC_IRQ_TIM2_OVF, ITC_PRIORITYLEVEL_2);//设置d定时器中断优先级 2


TIM2_Cmd(ENABLE);//使能定时器1


}


但是通过单步调试,确无法进入中断


#pragma vector=ITC_IRQ_TIM2_OVF + 2


__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)


{


TIM2_ClearFlag(TIM2_FLAG_UPDATE); //清定时器1更新中断标志


}


观察寄存器发现 TIMER2 的寄存器值TIMER2_IER无法开通中断也就是使能中断 ,手册和register都显示timer2 的寄存器很少。TIMER1和TIMER2的比较如下



后来在stm8s_timer2.h里发现了端倪


typedef struct TIM2_struct


{


__IO uint8_t CR1;


// __IO uint8_t RESERVE1;


// __IO uint8_t RESERVE2; //注释掉用于STM8S207 否则用于stm8s103


__IO uint8_t IER;


__IO uint8_t SR1;


__IO uint8_t SR2;


__IO uint8_t EGR;


__IO uint8_t CCMR1;


__IO uint8_t CCMR2;


__IO uint8_t CCMR3;


__IO uint8_t CCER1;


__IO uint8_t CCER2;


__IO uint8_t CNTRH;


__IO uint8_t CNTRL;


__IO uint8_t PSCR;


__IO uint8_t ARRH;


__IO uint8_t ARRL;


__IO uint8_t CCR1H;


__IO uint8_t CCR1L;


__IO uint8_t CCR2H;


__IO uint8_t CCR2L;


__IO uint8_t CCR3H;


__IO uint8_t CCR3L;


}


TIM2_TypeDef;


也就是在给timer2 的寄存器赋值时由于多了两个没用的,将数值顶替了,注释掉可以了。

推荐阅读

史海拾趣

Aristo-Craft/ L M P Inc公司的发展小趣事

随着科技的进步,Aristo-Craft/L M P Inc公司意识到要想在行业中保持领先地位,必须不断进行技术创新和产品升级。公司投入大量资源进行研发,成功推出了一系列具有创新性的电子产品,如高性能的集成电路、先进的通信设备等。这些产品不仅提高了公司的市场竞争力,还为客户带来了更好的使用体验。

Gamewell-FCI ( Honeywell )公司的发展小趣事

随着科技的进步,Aristo-Craft/L M P Inc公司意识到要想在行业中保持领先地位,必须不断进行技术创新和产品升级。公司投入大量资源进行研发,成功推出了一系列具有创新性的电子产品,如高性能的集成电路、先进的通信设备等。这些产品不仅提高了公司的市场竞争力,还为客户带来了更好的使用体验。

AUK Contractors Co Ltd公司的发展小趣事

AUK Contractors Co Ltd成立之初,电子市场正处于技术革新的热潮中。公司凭借对新技术敏锐的洞察力,成功研发出一款具有颠覆性的电路板设计,显著提高了电子设备的性能和稳定性。这一创新不仅赢得了客户的广泛认可,还为公司赢得了多个重要合同,从而奠定了在电子行业中的坚实地位。

Concurrent Logic公司的发展小趣事

面对日新月异的市场需求和不断变化的技术趋势,Concurrent Logic始终坚持创新驱动的发展战略。他们投入大量资源在研发上,不断探索新的并行计算技术和应用。通过持续的创新和市场的不断拓展,Concurrent Logic逐渐巩固了其在电子行业中的领导地位,成为了并行计算领域的一面旗帜。他们的产品被广泛应用于云计算、大数据分析、人工智能等多个前沿领域,为整个电子行业的发展注入了新的活力。

以上是关于电子行业里Concurrent Logic公司发展起来的相关故事,每个故事都反映了该公司在不同发展阶段所面临的关键节点和决策。

Cal Test Electronics公司的发展小趣事

随着全球市场的不断变化和公司规模的扩大,Cal Test Electronics开始实施全球化战略。公司积极拓展海外市场,通过参加国际展会、建立海外销售渠道等方式,提高品牌知名度和市场份额。同时,公司还加强与国际同行的合作与交流,引进先进的技术和管理经验,不断提升自身的竞争力。这些努力使得Cal Test Electronics逐渐成为一个具有全球影响力的电子配件和测试产品制造商。


这些故事旨在展示Cal Test Electronics公司可能的发展轨迹和成就,但并非基于实际发生的事件。对于该公司的真实发展历程和故事,建议查阅相关官方资料或行业报告以获取更准确的信息。

DREMEL公司的发展小趣事

随着电子行业的不断发展,数据治理和云数据湖领域也面临着越来越多的挑战。Dremio公司始终保持敏锐的市场洞察力,积极应对各种挑战。他们不断投入研发资源,推出了一系列创新产品和技术解决方案。例如,他们开发了一种基于人工智能的数据分析引擎,能够自动识别和预测数据中的异常和趋势。这一技术不仅提高了数据分析的准确性和效率,也为企业提供了更全面的数据支持。

问答坊 | AI 解惑

SD卡读EBOOT.BIN

本来有个2440的源码可以改的,以为SD卡部分可以不用改,轻松了.结果发现2440和我的2416在SD卡支持方面差别比较大. 大家帮忙讲讲SD卡读写方面的知识(SD设备,不是SPI也不是MMC).就当是复习吧,也可以告诉我哪有SD卡方面的资料看,这些资料网上比较少.…

查看全部问答>

16*16点阵屏的程序问题

求教: 本人做了一个16*16的LED屏,它是由89C52+74HC154控制 P0和P2口控制行(LED的阳级) P1口连接74HC154控制列(LED阴级) 现在问题是输出的字是看不懂,求高手指点. uchar code hanzi[]={ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x ...…

查看全部问答>

全国大学生电子设计竞赛大家准备好了吗?

两年一届的“全国大学生电子设计竞赛”已经成为全国各高校师生热切盼望的一项重大赛事和广泛开展类似竞赛活动的实践平台。十余年来,竞赛“政府主办,专家主导,学生主体,社会参与”的组织运行模式也在不断完善,有力推动了教育教学改革,为人才培 ...…

查看全部问答>

有谁能改海王无线网卡的MAC地址

有谁能改海王无线网卡的MAC地址…

查看全部问答>

QQ硬电话

看到SKYPE有硬电话,就想QQ硬电话应该也蛮有市场的,就没看到腾有动作。谁有这方面的研究啊?…

查看全部问答>

LM2596-12制作-12v电源

我用了LM2596-12做一个-12v电源,芯片发热严重,输出端只有零点几负,问题出生什么地方?…

查看全部问答>

初学单片机问下各位大虾们一些问题

我单片机刚入门,现在想问下大虾们,要从事非接触式IC卡的 读写工作,要学习那些知识(提示:以前没学过任何电子之类的知识)…

查看全部问答>

TRF7960

什么是时隙计数啊?下面代码中十六进制数字都是什么含义啊? #include \"include.h\" //************************************************************************************************* // 功能描述 : 时隙计数使能 // 输入参数 : 无 ...…

查看全部问答>

在codewarrior上如何进行多核调试仿真

使用的是freescale dsp 8157(6核),目前只能调试核0,在debug configuration中选择其他核时无法仿真(不会进入到该核的程序入口),不知需要怎样配置才行。 谢谢…

查看全部问答>