注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
Widic的个人空间 https://home.eeworld.com.cn/space-uid-434320.html [收藏] [复制] [分享] [RSS]
日志

430学习总结

已有 1146 次阅读2013-1-28 16:19 |个人分类:LanuchPad|

430单片机确实和51有些差别,低功耗模式非常适合当前的发展趋势。丰富的时钟选择,及内部和外部资源。都决定了它是一款难学,好用,方便的单片机。强大的功能又对它的稳定性提出了挑战

通过自己的学习,以及这几天帮助同学解决其中的问题,我同时对430有了更加深入的认识,下面我也就对它简单做如下总结:

430的学习中时钟是一个很重要的模块:首先有3个可选的时钟源.方便MCLK、SMCLK、ACLK的选择。对速度要求不同,选择不同的时钟可以降低功耗。减少不必要的开销。同时内部集成的很多模块丰富的时钟源可供选择,来满足不同需要。可以说是相当容易实现和方便使用。

丰富的片内资源可以满足你的很多需求:IIC,SPI,UART等众多的通新方式。片内集成的比较器,ADC,DAC,温度传感器,还有丰富的定时器资源(如看门狗定时器,TimerA ,TimerB定时器)可供选择,多路PWM的产生方便方波的调制及发生,更易于电机的调试等丰富的资源可以满足你的很多需求。对单片机玩家来说不能不说是一个宝贝。

但是430单片机也有很多不稳定的地方。仿真器就是其一,现在我用过得430仿真器也不下5,6种,期间坏过一个仿真器,解决过很多次仿真器下不进去的问题。浪费了很多时间在仿真器上。

哦,现在想起了,还有很重要的一点没说。就是中断,430有着丰富的中断。以及不同的中断优先级级。对于中断,首先要看是否有中断源触发中断,接着,如果中断发生说明中断标志位置位。中断标志位置位是一个典型的问题,你一定要注意了,当这个中断标志位置伟的时候,有中断发生的时候会怎么办,中断是否会自己进入中断时或退出时对中断标志位清0。如果中断发生,中段源(可以是高级也可以是低级)是否会触发中断,触发中断时会发生什么情况。不同的中断它的标志位是否会自动清0一定要关注,而且要清楚,否则出现怪异的现象是你就不知其所以然了,看着程序没问题,就是不正确的结果。其实这里面有一个很重要的东西,逻辑,你一定要清楚,你不清楚哪里,哪里就要发生问题了。定时器中断是一个很典型的中断。

比如说,Timer-A 它有两个中断向量,3个中断源。其中cctl1和cctl2公用一个中断向量,这里会发生很多的问题。具体识别的时侯,由TAIV来识别是哪一个中断向量。同时这句话执行的时候,中断标志位也会清0.,当有其它中断发生的时候,它会停止当前的工作区执行另外一个中断。同时Timer-A  A1 只有一个中断向量的时候,他还与计数模式相关。去掉TAIV 判断的时候,跟加上这句判断的现象有很大的差别,我现在还没想通这里为什么会是这样,所以建议大家使用的时候,最好加上这句判断。CCTL0,CCTL1,CCTL2中断向量级别依次降低。还有,一个计数器,两个中断向量,三个中断向量源,他的计数也是分大小和前后的。这一点也要注意。

看门狗很有意思,除了防止程序跑飞,我们还可以利用它来当定时器使用,它使用起来比较方便,可以做为长时间的定时,也比较准确。比如说1s,2s

Lanchpad与其它系列的区别,比如说f149

简单的列举几个: 首先有一些寄存器是不一样的,比如说BCSCTL3、

中断向量也不太一样

它的时钟也和149的不太一样,他没有高频晶振。

内部的DCO也产生的频率也不太一样,具体来说。要看你选择的内部电阻,和外部电阻,不同的电阻,对DCO的频率影响很大。DCO是一系列不同平率的值,具体你可以参考资料计算你想要的频率值。同时DCO很有很好用的一点。就是可以利用它来很容易实现1M ,4M,8M ,12M,16M等不同频率的值,具体来说,我侧过它的准确度,还是比较精确的。用的时候在头文件中已经定义好了,你直接调用几个。很放方便也很实惠!

说一个写程序的问题,作为一个程序员你一定要知道你的每一句代码会是什么效果,c语言是单程执行的,所以你一定要保证你前面的每一句话都是对的,你的后面的语句才有意义。你觉得呢。写程序一定要写注释,语句简练。一句能写的尽量不要用多句去写,逻辑一定要严密。

作为一个程序员你应该了解一下编译器。他会做哪些工作。有一些非致命错误引起的运行是错误是可怕的。他会得到不正确的结果。我们调试只能解决编译时错误,而不能完全解决运行时错误。因为编译器对有些东西是不进行检测的,他不可能做到全面,所以你得在它不留意的地方你得留心了。

程序不怕错,就怕不美观,影响调试心情和逻辑。很有必要培养自己的程序写作方法。

即使再小的错误,也可能要发生,一定要细心。这几天我给别人调程序的时候,自己以为不可能发生错误的地方,结果还是出错了(一个简单的延时都有可能出错什么还不可能发生错误呢,我花了两个小时居然没有想到是延时函数出问题了),任何地方都有可能出错,不要放过每一条语句。我们能做的就是尽量减少错误的发生。

遇到问题,编译器,电脑是你最好的老师,你可以试吗。

你调程序,得找一个好的硬件,你得用一些方法检测了,再去调试。

别老怀疑芯片坏了,这坏了,那也坏了,要知道哪坏了,只有你检测了才知道。

学东西一步一步来,要想深入的了解一个东西,不停的去尝试换种思维再试一下。很有必要对

写好的程序进行简化。你会从中学到很多东西。变换思维看自己的程序或许你会有意想不到的思考。

逻辑是程序对你的考验。话越说越多了,就说到这吧!

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章