打印
[demo程序]

~附完整代码!Uart0 中断接收、PIT中断、KBI中断....

[复制链接]
1526|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kation122|  楼主 | 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 中配置了。

K-NV32demo-Ver1.0.rar

1.72 MB

NV32 Demo

相关帖子

沙发
上官梦舞| | 2016-11-30 11:16 | 只看该作者
好东西,谢谢分享。

使用特权

评论回复
板凳
lkb3842| | 2017-6-22 16:29 | 只看该作者
感谢分享~正头痛中

使用特权

评论回复
地板
戈卫东| | 2017-6-22 19:32 | 只看该作者
楼主辛苦。
不过好像是去年的贴。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

126

帖子

9

粉丝