历史上的今天
返回首页

历史上的今天

今天是:2024年09月12日(星期四)

正在发生

2019年09月12日 | 秉火429笔记之十一 Systick--滴答定时器

2019-09-12 来源:eefocus

SysTick—系统定时器是属于CM4内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器。所有基于CM4内核的单片机都具有这个系统定时器,使得软件在CM4单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。


2. 寄存器说明

CTRL  SysTick控制及状态寄存器

image.png?imageView2/2/w/550

LOAD  SysTick重装载数值寄存器

VAL SysTick当前数值寄存器

CALIB SysTick校准数值寄存器(可忽略)

3. 编程要点

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

{

  if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk)  return (1);      /* Reload value impossible */

 

  SysTick->LOAD  = ticks - 1;                                  /* set reload register */

  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  /* set Priority for Systick Interrupt */

  SysTick->VAL   = 0;                                          /* Load the SysTick Counter Value */

  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |        /* CLKSOURCE = AHB */

                   SysTick_CTRL_TICKINT_Msk   |

                   SysTick_CTRL_ENABLE_Msk;                    /* Enable SysTick IRQ and SysTick Timer */

  return (0);                                                  /* Function successful */

}

 参照代码可知


设置重装载寄存器的值

清除当前数值寄存器的值

配置控制与状态寄存器(配置时钟源,中断)

4. 实例代码

/**

  * @brief  启动系统滴答定时器 SysTick

  * @param  无

  * @retval 无

  */

void SysTick_Init(void)

{

/* SystemFrequency / 1000    1ms中断一次

* SystemFrequency / 100000 10us中断一次

* SystemFrequency / 1000000 1us中断一次

*/

if (SysTick_Config(SystemCoreClock / 100000))

/* Capture error */ 

while (1);

}

}

推荐阅读

史海拾趣

EiKO Global LLC公司的发展小趣事

EiKO Global LLC,简称EiKO,成立于XXXX年,由一群热衷于照明科技的先驱者共同创立。公司初期专注于照明产品的研发与生产,致力于为全球用户提供高质量的照明解决方案。EiKO凭借对市场的敏锐洞察力和技术创新,迅速在北美市场崭露头角。

在创立初期,EiKO便确立了以“质量第一、客户至上”为经营理念的方针。通过引进先进的生产设备和技术,严格把控产品质量,EiKO的照明产品逐渐赢得了消费者的信赖。同时,EiKO还积极拓展市场,与多家知名企业和零售商建立了合作关系,产品销售网络遍布全球。

Gumstix公司的发展小趣事
检查电路中是否有异物导致短路,清理异物并修复受损部分。
Burr-Brown公司的发展小趣事

2000年,Burr-Brown被著名的美国德州仪器公司(Texas Instruments)收购,成为其高性能模拟器件部门的一部分。这一收购为Burr-Brown提供了更强大的资源和支持,使其能够继续专注于模拟器件(如ADC、DAC等)的生产和创新。在德州仪器的引领下,Burr-Brown持续保持技术领先,为全球电子行业的发展做出了重要贡献。

这五个故事共同展现了Burr-Brown公司从创立到发展壮大的历程,以及其在电子行业中的卓越成就和持续创新的精神。通过不断适应市场变化和技术进步,Burr-Brown成功地在竞争激烈的电子行业中脱颖而出,成为一家备受尊敬的企业。

GWM Associates公司的发展小趣事
设计时需要保证增益的稳定性,以确保在不同工作条件下放大器的性能保持一致。
ETC公司的发展小趣事

随着ETC技术的不断完善和产品性能的提升,速通科技开始积极拓展市场。公司积极参与全国ETC联网工作,与各地交通运输管理部门和高速公路运营商建立了良好的合作关系。在政府的支持下,速通科技成功推动了ETC系统的全国联网工作,实现了ETC卡的跨地区、跨省份通用。

ABCircuits公司的发展小趣事

随着公司的不断发展,ABCircuits意识到单打独斗难以应对日益激烈的市场竞争。于是,公司开始积极寻求与其他企业的战略合作。通过与上下游企业的紧密合作,ABCircuits不仅获得了稳定的供应链支持,还成功打开了国际市场的大门。这些合作不仅加速了公司的扩张步伐,也提升了其品牌影响力和市场竞争力。

问答坊 | AI 解惑

是不是明天就出来全部成绩了?

是不是明天所有关于比赛的成绩都应该有结果了?希望获奖的朋友可以分享一下各自的方案和资料,大家共同学习、共同进步。…

查看全部问答>

问一个初学者的问题,wince所用语言

1.wince下主要用什么语言开发,我喜欢c++,可以吗,是主流吗 2.现在嵌入式开发wince是主流吗,尤其是3g 3.用什么工具开发…

查看全部问答>

cd4046 怎么选取电阻电容

网上收到好多的都是固定频率的参数值 请问,电阻电容和频率的关系式是什么   谢谢 …

查看全部问答>

高薪诚聘 嵌入式 Linux 开发工程师

公司介绍    北京顶嵌开源科技有限公司,简称顶嵌或TOP-E。公司秉承“专业、专注、顶尖”的发展理念,致力于嵌入式技术的人才培养,项目开发,技术推广与技术咨询服务。    顶嵌是国内唯一一家专注嵌入式Linux系统高端培训和 ...…

查看全部问答>

BT656电视制式的格式

(介)标准 BT656 并行 数据结构 详解 BT.656并行接口除了传输4:2:2的YCbCr视频数据流外,还有行、列同步所用的控制信号。如图3所示,一帧图像数据由一个625行、每行1 728字节的数据块组成。其中,23~311行是偶数场视频数据,336~624行是奇数场视 ...…

查看全部问答>

在STM32F10xC(DE)中使用8位NANDFLASH的问题

不用的引脚可以做为普通GPIO使用吗?像类似的D8~D15、A0~A15、A18~A25,还有一些NOR/PSRAM信号。闲置的话就太可惜了…

查看全部问答>

运放的重要性

模电的最重要器件应该算运放了。 1、运放的主要特性:输入阻抗“无穷大”,输出阻抗“等于”0;开环放大倍数“无穷大”。进而衍生出:输入电流“等于”0,输入端间电压“等于”0。 2、通常,运放是作为各种单元功能电路的核心来使用,单独使用的 ...…

查看全部问答>

再次遇到奇怪的问题:FPGA板子上的晶振振幅下降。

再次遇到奇怪的问题:FPGA板子上的晶振振幅下降,导致fpga不工作。   板子是好用的,我用其他的程序都没有问题,但是某个程序导致4Vp-p的晶振变到1Vp-p 用的是xilinx的spartan 3 A,我将程序中的chipscope去掉后,时钟恢复正常,再加上chip ...…

查看全部问答>

求verilog HDL代码

我该如何实现以下功能(verilog HDL代码):当A为高电平,并持续5s,那么B输出为高;如果A为低电平,且持续5s,那么B输出为低。请大家指点迷津…

查看全部问答>