野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9115|回复: 5

系统定时器的使能和关闭问题。

[复制链接]
发表于 2015-1-29 14:21:05 | 显示全部楼层 |阅读模式
// 使能滴答定时器
02 SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
03
04 // 关闭滴答定时器
05 SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;


这两句是怎么计算然后实现系统定时器开关的,,C语言学得不好求指教。。
回复

使用道具 举报

发表于 2015-1-29 14:41:39 | 显示全部楼层
第一句的意思是将CTRL寄存器中的对应使能的那一位设为1,第二句就是将对应那一位设为0。
SysTick_CTRL_ENABLE_Msk = 0x0001
~SysTick_CTRL_ENABLE_Msk = 0xfffe
SysTick->CTRL = SysTick->CTRL | 0x0001   (第一句表达式展开)  表示将CTRL的Bit0即使能位置1,然后systick就开始工作啦
SysTick->CTRL = SysTick->CTRL & 0xfffe   (第二句表达式展开)  表示将CTRL的Bit0即使能位置0,systick关闭
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-29 14:56:56 | 显示全部楼层
yinhao 发表于 2015-1-29 14:41
第一句的意思是将CTRL寄存器中的对应使能的那一位设为1,第二句就是将对应那一位设为0。
SysTick_CTRL_ENA ...

非常感谢!,那SysTick_CTRL_ENABLE_Msk = 0x0001这个宏定义从哪看啊。。还有,直接SysTick->CTRL=0x0001和SysTick->CTRL=0x0000来操作不行么为什么要那么麻烦的计算啊。。
回复 支持 反对

使用道具 举报

发表于 2015-1-29 15:39:11 | 显示全部楼层
cc小蜜糖 发表于 2015-1-29 14:56
非常感谢!,那SysTick_CTRL_ENABLE_Msk = 0x0001这个宏定义从哪看啊。。还有,直接SysTick->CTRL=0x0001 ...

先回答你第二个问题,SysTick->CTRL寄存器有几个标志位,例如bit0是使能,bit1是干嘛bit2是干嘛,你用SysTick->CTRL=0x0001同时就把bit1 bit2都设为0了。 想要对某一位进行操作,就用位或| 和位与&,这是非常常用的,多接触你就习惯了。
再来回答你的第一个问题,你打开一个例程,编译一下,然后鼠标拉选SysTick_CTRL_ENABLE_Msk这个单词,然后点右键,就有go to definition of "SysTick_CTRL_ENABLE_Msk"了,点击就会跳到定义它的地方了。这是一个很重要的用法,你可以设置快捷键查询变量的定义。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-29 16:13:10 | 显示全部楼层
yinhao 发表于 2015-1-29 15:39
先回答你第二个问题,SysTick->CTRL寄存器有几个标志位,例如bit0是使能,bit1是干嘛bit2是干嘛,你用Sys ...

直接操作CTRL=0x0007这样对,SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk这一步的结果不是0x0001么?,你能不能用二进制帮我表示一下,,谢谢。。
回复 支持 反对

使用道具 举报

发表于 2015-1-30 15:02:07 | 显示全部楼层
cc小蜜糖 发表于 2015-1-29 16:13
直接操作CTRL=0x0007这样对,SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk这一步的结果不是0x0001么?,你 ...

SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk这一步的结果不一定 是0x0001,除非它原来的值是0x0001或0x0000的情况下,这么操作的结果才是0x0001
如果它原来的值是0xfff0  操作的结果是0xfff1
在学51单片机时有P1=P1&0X0F不就是把高4位清0了吗
或操作可以把某些位由0变为1,但不能把1变为0 
与操作则相反可以把某些位由1变为0,但不能把0变为1
这样操作的好处是不改变其它位的值,而单独操作某一位或某几位,试想一个32位的寄存器,每一位都代表不同的含义,在没弄明白的情况下,你就贸然对它全部赋值,会造成怎样的后果?所以我们用到哪几位,并且弄明白了这几位,就对这几位操作
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-15 14:54 , Processed in 0.035641 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表