上篇文章说了开发环境和烧录环境的配置以及安装,那么接下来就需要开发项目了。
Demo文件资料-无锡矽杰微电子有限公司 (xjmcu.com)
这里贴上矽杰微官网的资料下载专区,包括不同芯片的DEMO和上文所说的工具。
既然是项目开发,那么芯片的数据手册是必须要有的,上述链接里也有,可以根据自己的需要下载。
我使用的是9520,如下是芯片特性。
外设很少,功能很简单,代码也很好些,可是实际实现需要的功能却很难,笑死。
这个难不是别的,而是因为手册写的很简单,很多东西写的很模糊,需要一直咨询矽杰微的技术人员 。
接下来说一下我这个小板子的开发之路,总共用时四天左右的时间。
第一,明确功能,详细的功能不方便说,简略说一下,我这里就用了一个按键,一个led灯,pwm和TCC定时器全部用上,物尽其用。
第二,设计电路,电路不是我的事,我也不会,哈哈哈哈哈。
第三,编写代码,我的时间主要就是这部分,怎么样可以快速上手一款芯片?看代码demo,看数据手册,只要看的懂就抄,然后改,实现功能就可。假如没有,看有没有类似的,然后看数据手册去改。
初始我是自己写的,我也认为自己写的会更好,但是写完发现功能不好用,所以对后来的你们说一句,工作了之后,代码完全没必要自己写,只要看得懂,修修改改能用就好,自己写浪费时间不说,还不一定能用。
看下9520的初始化,这部分是要写在主函数最前面的,RAM可以理解为我们的计算机的内存,用于存放我们所定义的变量,每次上电要清除一次,然后写入,防止上电数据错乱。
void file_clrRam()
{
for(RSR=0xD0;RSR<0xFF;RSR++) //清零 BANK0 RAM IAR-R0,RSR-R4
//RSR的高两位默认只读为1
{IAR = 0;}
IAR = 0;
}
紧接着就是各个端口的初始化,以及要开的外设的初始化,这些和别的常用的单片机是一样。
对于TCC的初始化
,只需要关注这几个寄存器即可,CONT(控制寄存器),TCC(定时计数器),想要开启中断,还需要关注IMR(中断使能控制寄存器),这个一般都是要的。
定时的时间计算公式:
TCC 定时时间计算公式(选择内部指令周期时钟):
TCC定时时间 = (系统时钟分频/FOSC ) * TCC分频 * (256 - 初始值)
TCC 定时时间计算公式(选择外部输入时钟):
TCC定时时间 = (外部输入时钟) * TCC分频 * (256 - 初始值)
注意了,系统时钟以及系统时钟的分频在这里设置,不需要代码进行初始化配置;看到那个像扳手的图标没,就是那个。
很多设置都在这里,不需要代码的配置的,这里和我以前用的芯片开发IDE不太一样。
还有PWM的初始化
,需要关注的寄存器,首先如果需要PWM溢出中断,IMR(中断使能控制寄存器)是必须的,我这里没用到就没管,CPUCON(CPU 模式控制寄存器),最重要的就是PWMCON(PWM 控制寄存器) ,还有PRD(PWM 周期寄存器) ,PDC1(PWM1 占空比寄存器) ,PDC2(PWM2 占空比寄存器), PDC3(PWM13占空比寄存器)。根据自己的需要看着配置。
void int_isr(void) __interrupt //还有这个中断的书写格式,可以参考下他们的官方demo。
我只用到了这些,就实现了自己所需的功能,当然说起来是简单的,实际做的时候毛病不断,都是一个一个解决的。
最后大家努力学习,一起奋斗。
祝大家越来越好,技术越来月牛犇!!