前段时间沾
@dirtwillfly 大大的喜气
http://bbs.21ic.com/icview-1641406-1-1.html,从他那得到一块MSP-EXP430FR5739开发板,今天发布第一次学习过程,请大家拍砖!
这次学习使用的开发工具是火山大神
@火山LF 同款的CCS6.2,软件使用方案参考火山大神的
CCS6.2超详细使用方法,这里我也是学她的就不介绍开发工具的使用了,有兴趣的同学可以看看火山大神的教程,有疑问可以咨询她。
附件是这款开发板的寄存器手册、datasheet以及原理图。
首先参考MSP430的例程MSP430FR57xx_01.c ,先点亮一盏灯(LED1),代码如下:
#include <msp430.h>
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
PJDIR = BIT0;
PJOUT = BIT0;
while(1)
{
PJOUT = BIT0;
__delay_cycles(100000); //delay 1/6s
}
}
将程序编译烧进开发板后LED1常亮,符合预期;
然后控制LED1闪亮,代码如下:
#include <msp430.h>
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
PJDIR = BIT0;
PJOUT = BIT0;
while(1)
{
PJOUT ^= BIT0;
__delay_cycles(100000); //delay 1/6s
}
}
将循环内的直接赋值1改为异或后赋值,LED1以1/6s的频率闪烁,符合设计要求;
最后,设计流水灯,开发板的8个LED灯轮流闪烁,代码如下:
#include <msp430.h>
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
PJDIR = BIT0|BIT1|BIT2|BIT3;
P3DIR = BIT4|BIT5|BIT6|BIT7;
PJOUT = BIT0|BIT1|BIT2|BIT3;
P3OUT = BIT4|BIT5|BIT6|BIT7;
while(1)
{
PJOUT ^= BIT0;
__delay_cycles(100000); //delay 1/6s
PJOUT=0;
__delay_cycles(100000);
PJOUT ^= BIT1;
__delay_cycles(100000);
PJOUT=0;
__delay_cycles(100000);
PJOUT ^= BIT2;
__delay_cycles(100000);
PJOUT=0;
__delay_cycles(100000);
PJOUT ^= BIT3;
__delay_cycles(100000);
PJOUT=0;
__delay_cycles(100000);
P3OUT ^= BIT4;
__delay_cycles(100000);
P3OUT=0;
__delay_cycles(100000);
P3OUT ^= BIT5;
__delay_cycles(100000);
P3OUT=0;
__delay_cycles(100000);
P3OUT ^= BIT6;
__delay_cycles(100000);
P3OUT=0;
__delay_cycles(100000);
P3OUT ^= BIT7;
__delay_cycles(100000);
P3OUT=0;
__delay_cycles(100000);
}
}
LED灯一个接一个闪烁,上一个灭了之后下一个LED灯才亮,符合预期。
没法上传视频,所以不能给大家展示结果了。
总的来说,我觉得我这些代码写的很潦草,但完成了预计的目标,还是蛮开心的,希望大家可以给我提些改进建议,谢谢大家了!
最后,感谢在我学习过程中这些同志们@火山LF
@鬼谷清泉 @像风儿一样清 @dirtwillfly 的帮助,谢谢大家!
一周热门 更多>