关于例程,我们写过很多,从最早的KF8F312的例程,到现在的基于KF8V216,KF8V325,KF8F4156的例程,我们都有写过。针对每个模块都有一个例程。可以说现在的例程基本涵盖了我们KungFu单片机的所有功能模块。可为什么还要继续写?因为之前只顾写例程,而不对例程进行讲解,客户理解的不够透彻,以至于面对一些模块的使用时,对照着例程都无法吃透。再者有些例程要么写的太片面,别人没法照例移植也没法完全理解,要么写的太复杂,完全和实际脱轨,别人还没看完便已经放弃继续阅读。经过那么长时间的技术支持工作,我深知工程师们想要的只是干货。能够帮助他们加快理解的干货、能够快速移植过去的代码。所以,我比较倾向于碎片化的例程,一个模块,一种用法,完整讲透,去掉不需要的累赘,完整例程可移植。这多少有点库函数的概念在里面。 本文将逐一讲解KungFu单片机各个模块的应用方法,以C语言的形式呈现出来,尽量更加贴近实际项目。有些隐藏的或者是不常用的功能,我会尽量描述的清楚一点,最终还需要工程师们自己去理解掌握。对于本次撰写例程讲解,本人还是有点态度的,像跑马灯这样的例程讲解我是坚决不从。其实,我并不希望,工程师只看我的例程讲解,而不看数据手册,我希望大家在看完数据手册后再来阅读本文,而并不是简单的复制粘贴,我也相信,大部分的工程师都有认真阅读产品数据手册的习惯。希望本文能够抛砖引玉,为大家带来帮助。 一、中断定时器 KungFu单片机内含有多个定时器模块,当然,只要是个单片机,肯定有这个模块。相信大家在入门单片机的时候,最先了解到的也是定时器模块。KungFu单片机的定时器总的来说有8bit和16bit两种。我们以KF8TS2716为例来说。有一个8位的定时器T0,还有3个16位的定时器T1,T3,T4。其中T0为内部中断,其他的定时器都为外部中断。这一点很重要,关于内部中断和外部中断的分类,建议大家翻看数据手册中断这一章节。搞清楚哪些中断是内部中断,哪些中断是外部中断,关系到PUIE(外设中断使能位)是否要被置1。而这一点也经常被大家所忽视。 下面我们将分别使用T0和T1两个寄存器实现125us的中断定时功能。
|