- 本课程为精品课,您可以登录eeworld继续观看:
- C2000入门基础(四) C2000 的时钟和中断系统
- 登录
- 课程目录
- 相关资源
- 课程笔记
讲完他的复位的话
我们接下来看一下它这个中断
理解一下 C2000 内部的
一个中断到底是怎么搞的怎么去做的
中断好比是说像我们人类一样
我们平时坐在办公室
然后我们再做一些我们自己常规的一些事情
这个时候我们的中断相当于我们的各种电话
各种人找你
你怎么去按你的优先级去处理这种事情
因为他要打断你的常规的一些事情
来看一下右边的话是这个芯片内核
它从内核级别它能够去处理的
它其实只能处理14个
然后再加几个不可屏蔽的中断
其实他自己本身
我的大脑本来只能响应这么几个而已
但这个远远是不能满足我周边这么多外设
这个事情的
所以我们会有一个叫做PIE的这个扩展
是说我们加了一个扩展模块
让他能够去分类的去处理各种各样的一个外设
我们来看一下这个模块
这个模块是这样子的
是说它分为 12 组
每一组分别可以直接牵扯到
芯片级别的 12 个主要的一个中断
每一组我又把它细分开来
对应每一个外设的一个中断请求
所以这样子的话12×8是等于96
是说我通过我的扩展之后
我一下子可以处理的很多的
一个中断的一个请求了
其实相当于你们的什么IO口扩展ad扩展
这是我们中断扩展这么来的
所以我们要
我们的外设要有一个中断请求的话
我外设级别给他一个使能他一个中断的
就是使能外设中断
然后对应的一个它到底是处于哪一组的
我把他使能了
它是属于CPU级别的哪一组也把使能了
这样子我从链路上
我把这个链路把他使能这样子
下次他如果有事情的时候
我能够保证它能够到 C2000 内核
能够让他去让 C2000 去处理
这里的话是它的一个过程
芯片复位之后
它这个刚才讲到了
到了这个入口
是我的芯片到这个具体的一个位置去取址之后
他会先跑一段这个int00的这个代码
这个代码其实是初始化一些
简单的一些环境变量
又把我一些变量的初始值
搬到我的全局变量里面去
然后再调我的一个main
是我用户自己写的一个主函数入口
在主函数入口里面再做一个初始化
初始化里面其实包含了各种各样的
一些外设手手脚脚之类的一些初始化
还有其中包括这个对这个中断
中断向量这些模块的一个初始化
比如把我的一些把我一些中断的服务函数
是我中断之后要怎么去办的些函数
把它放到对应的一些入口地址里面去
那他可以去当有中断来的时候
他能够到对应的一个入口去取我的一个地址
讲完中断的话
我们来看一下时钟
时钟相当于人的一个心脏
它的每一次跳动是能够维持
能够保证这个芯片的一个正常运行
你始终过快过慢都是心律不正常
首先我们来看一下它
内部有两个内部的一个时钟
分别都是十兆的一个时钟
除了内部的一个时钟源之外
我们还有一个外部的一个时钟输入
一个是我可以直接给他一个有源时钟信号
它直接可以另外的话有一个无源晶振
这是外部时钟输入
这三个构成它的一个时钟源
然后如果这三个时钟源
我都可以通过内部的一些寄存器配置
然后再加个一些锁相环
锁相环其实是给他倍频或者说分频之类的
然后最终达到一个给到C2000的一个时钟频率
比如我这里十兆
然后做一个 20分频分十兆
然后做一个12分频
然后再除以二变成60兆给C2000了
上面是时钟
所以时钟其实算是比较简单的
而且我们也有对应的一些配置例程
用起来很方便
还有的话是我们的一个看门狗
看门狗是看门的
然后我们它里面是用它来
复位我们的一些C2000内核
当我们的程序跑飞了之后
他会有一个默认的时间去把它复位了
这里的话比如我们如果给这个看门狗
给一个十兆的一个时钟的话
它会在 13.11 毫秒的时候
它就去复位
如果你没有及时的去清除掉
这个时钟计数的话它会复位
当然你这个时间是可以配的
你只要把这个时钟改了就行了
我们来看一下它的一个流程图
首先这个时钟这个时钟输入
然后经过一个分频
其实是你实际上的一个技术频率
我这里会有两个开关
举例我把这个这个是看门狗使能的
我把它这个通过寄存器
其实寄存器的一个位我把它置1了
他是可以过来了
我可以开始工作了
他这里面会有一个八位的一个看门狗计数器
他一直在这里开始计数了
其实所谓的给它喂狗
给它喂狗其实是你在代码里面
往某一个寄存器
往这个寄存器里面去写55AA或者说系统复位
这样的话会把这个清零
所以我必须保证
在他计数到八个位都是一之前我把它清掉
否则它这里会导致你复位了
这是看门狗复位
所以也是比较简单的
课程介绍
共计7课时,51分20秒
猜你喜欢
换一换
推荐帖子
- 【求助】关于键盘和AD转换的问题!
- 小女子初学430,现做一块MSP430实验板的演示程序开发,遇到了几个问题,恳请大侠们指点(用的是MSP430F449): 1。 我的键盘程序运行影响到了步进电机的模块的运行。我是用TA中断,在中断程序中依次进行键盘扫描(行列式扫描),步进电机运行控制等,在键盘扫描中,原来设了个判断键释放与否的循环,后来发现当我按住某键不释放时,步进电机就不转了(因为不能跳出上述循环)。我问我的老师,他说将判键...
-
somanyww
微控制器 MCU
- MCLK与低频外部晶振问题
- MCLK来自低频外部晶振,如果振荡器失效,430会自动把MCLK信号切换为DCO吗?有些资料上说LFXT1只有在高频模式下才可以,那不是低频振荡器失效后就死机?那位兄弟给解释一下,多谢了...
-
qu27jump
微控制器 MCU
- 我的车库门摇控器上的LSD2262 芯片坏了...
- 请问贵网站的LSD2262 芯片能替换上去吗..!!!直接取下焊上就能用吗!!!先谢谢!!!我是菜鸟...
-
chap1
微控制器 MCU
- 【求助】zhaoyongsheng2004请注意
- 非常抱歉,我不知道怎么发email找您,所以只好在这吆喝一下. 您多包涵!!! 昨天我的程序出了点错,在论坛上搜到您去年的帖子,报错和我的一样,我的也是在项目中放一个文件没有错误,两个文件就出错了,Ignore CSTARTUP in library也点了,xcl和ddf都没问题. .您在上面说是少点了option 里的一个选项,不知道您后来是怎么解决问题的. 这个问题已经困住我两天了.....
-
weidshiep
微控制器 MCU