查看: 365|回复: 3
收起左侧

[demo程序] ~附完整代码!Uart0 中断接收、PIT中断、KBI中断....

[复制链接]

3

主题

97

帖子

313

积分

资深技术员

 楼主| 发表于 2016-11-30 10:20 | 显示全部楼层 |返回版面||阅读模式
感谢21IC 从北京寄来的NV32F100 demo 板,研究了两天,把自己项目会用到的一些功能模块调好了,
不敢独享,把完整工程源代码上传上来,给大家抛砖引玉,请大家多指点。
分享一点调试模块体会:

1、上传的代码都采用了实时中断架构,程序没有delay、无阻塞,真正实用的代码,KBI 暂时没加消抖。

2、NV32 的时钟配置,相对稍微复杂,化繁为简,其实就配置RDIV和BDIV 两个关键分频点,
RDIV 是外部晶体进来的第一个分频器,RDIV 负责把外部晶体频率降低到32K-39K之间,然后进入FLL,为什么要这个频率范围呢,个人猜测应该FLL之前有一个带通滤波器的,这样可以保证频率干净、稳定,FLL 硬件固定1280倍频的,然后频率出到BDIV,BDIV分频后就是ICSOUT ,就是所谓的系统时钟了,简化一下XTAL->RDIV->FLL->BDIV->BUS_CLK_HZ,这个程序使用外部10M 晶体,10M->RDIV 256分频 10000/256 得到 39.0625K ->FLL 1280倍频得到50M->BDIV 4分频就是 50M/4得到 12.5M的系统时钟。

3、定时器,刚开始以为是用ETM 的,发现ETM 并没有官方的定时溢出例子,自己折腾了好久,其实应该用PIT,PIT 就是周期定时溢出模块,简单好用,32位的溢出值,可以定时的时间也很长。

4、UART0 调试用了中断接收,接收后马上把接收的数据从TX回去。

5、外部中断,注意了,NV32 并不是任何IO 都能配置外部中断的,只有支持KBI 中断的IO 才能配置,并且
KBI只有两个中断入口KBI0\KBI1,如果用到多个外部中断,要进入KBI 中断之后再查询确认具体是哪个IO口触发的中断,这样的外部中断机制稍弱!

6、中断入口在isr.h 中配置了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 手机登录

x
     

1

主题

49

帖子

157

积分

中级技术员

发表于 2016-11-30 11:16 | 显示全部楼层 |返回版面
好东西,谢谢分享。
/**************※※※--以勤补拙--※※※**************/
     

3

主题

26

帖子

78

积分

初级技术员

发表于 2017-6-22 16:29 | 显示全部楼层 |返回版面
感谢分享~正头痛中
     

102

主题

7741

帖子

2万

积分

技术总监

发表于 2017-6-22 19:32 | 显示全部楼层 |返回版面
楼主辛苦。
不过好像是去年的贴。。。
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

关闭

热门推荐上一条 /3 下一条

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