国产MCU之光 第11期:中颖SH79F 系列应用——刷TFT彩屏 & PWM功能使用经验
*阅读说明:详细过程及源码资料等请戳原链接查看。
闲来无事逛某宝,赫然发现同尺寸的TFT小屏竟然比单色点阵屏还便宜,顿时萌发了尝试一下的念头,根据现有产品要求选定一款2.4''彩屏,驱动ILI9341分辨率200*320,典型的烂大街规格不愁断货,立刻下单! ………… 无意间忽然想到电机控制MCU不是对速度要求挺高的嘛,于是就发现了这头怪兽— SH79F3213。32KB的FLASH、1.5KB的RAM、关键是有16KB的程序RAM,只要把前16K的CODE拷贝到里面就能以84M的主频的跑程序,芯片其它外围也挺丰富但我暂时用不到就不去管它了,没有硬件支持下刷屏幕MIPS才是王道! …………
在第一篇发出后好几个朋友提了触摸屏的事,所以这一版把触摸屏也加上了,目前已经可以正确采集触摸坐标,坐标的处理和结果反馈部分程序还没开始写,等有空做好了再来补充。这里简单聊聊触摸屏的驱动方法,用触摸芯片?不可能的!我是恨不得一分钱掰两半花的人,直接用MCU端口来驱动!电阻触摸屏其实就相当于两个电位器,按下屏幕后等于将两个电位器的滑动端短接起来,而按压的位置就决定了XY两个电位器滑动端的位置,了解了原理后驱动它就是个简单的任务了,基本程序思路如下: 1)检测是否按下:将Y+、Y-引脚设置为输出低电平,将X-设置成输入带弱上拉,X+为高阻输入,测试X+电平如果为1说明没有触摸可以干其它事了,如果为零说明屏幕被按下,继续下面步骤。 2)测量Y坐标:Y+Y-保持输出,但将Y+输出高电平,X-设置成高阻输入,对X+引脚进行ADC,得出的值正比于触摸点在屏幕上的位置。 3)测量X坐标:与第二步类似,只是X+X-接高低电平从Y+或Y-做AD转换,得到X坐标值。 测量的值不会正好与屏幕分辨率一样,屏幕的零点也不会在触摸屏的边缘,所以屏幕零点和对角需要进行校准计算,这点线性计算相信大家都能轻车熟路,就不在这继续罗嗦了。
作为一名电子工程师,用单片机引脚输出PWM波形这个事情大家肯定都做过。 而常用的两种PWM输出方式就是定时器模拟PWM信号和专用的PWM定时器生成PWM信号。 两种方式可以说是各有优劣。 使用定时器模拟PWM信号优点是不挑引脚,只要是具有输出功能的IO口就可以完成,非常灵活;而缺点就是占用定时器资源,且无法做到比较高的频率。 使用专用的PWM定时器的话,优点是编程简单,只需要配置相应的寄存器即可,频率可以做的相对比较高;缺点就是一般都需要特定的IO口进行输出。 前段时间我在中颖MCU上把两种方式都试了一下,并且遇到了一个小小的问题,在这里分享给大家。 我用的芯片型号是SH79F3214,这个芯片有一个12位的PWM定时器。 …………
这次是另外一个需求,需要控制一个风机并进行调速,风机的输入控制信号为PWM信号,推荐频率为20kHz。 基于这个需求,首先频率并不是很低,然后就是硬件电路无限制,因此这里使用了PWM定时器来完成PWM的输出功能。 …………
|