做了好一段时间的msp430单片机的编程,随意想一点点东西写下来,也算是给岁月增加一圈年轮。我做msp430的编程使用IAR,用C语言来说。在调试和编程中经常遇到一些个问题,如下:
1、中断
中断是单片机很重要的一个问题,也是难处理的一个问题。在调试中经常遇到问题。
1)打开了中断开关,但是忘了写中断服务程序,此时如有产生了中断就会导致程序跑飞。此问题遇到了几次,都是 一时疏忽,造成了很大的麻烦。
2)外设与CPU是并行运行的,采用中断的方式控制外设时,需要考虑主程序可能要等待外设中断。
Uart_Send(CustomerCounter,CustomerCounterRow*(AddrMap[0]1),TXSEND_DATA);
while(TxSendStatus == TXSEND_DATA);
/ /清零
CustomerCounterRow = 0;
上边的代码表示了一个串口发送程序,因为串口发送的速度低于程序执行的速度,并且要求在串口发送完成后进行清零,所以可以采用一个状态为TxSendStatus进行控制,这个变量最好声明为volatile类型。
2、一些有效的写法
1)老师教给我过一种串口解析的写作模式,非常不错,主要的思想就是设计解析的标志,依次核对,保证了通信的可靠。暂时不贴代码。
2)之前看到过老师的一段键盘消抖的程序,利用计数器来做的,感觉还是非常不错的。但是后来给另一个同学写的时候其实发现距离真正的理解还是有很大差距的。
在写代码的时候真的要戒骄戒躁,有时候看似简单的东西其实并不会。
扩展阅读:单片机程序设计中的“分层思想”