CCS-msp430

笔记一:MSP430及CCS上手
一、第一个程序:
①实现绿色小灯闪烁亮灭:
Eg:#include <msp430.h>
/*** main.c*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD;// stop watchdog timer
volatile unsigned int i; //volatile提醒编译器它后面所定义的变量随时都有可能改变,//因此编译后的程序每次需要存储或读取这个变量的时候,都会//直接从变量地址中读取数据。
P1DIR |= 0x40; // 设置P1.6为输出,P16控制绿灯
for (;😉
{
P1OUT ^= BIT6; // 使用异或翻转P1.6,BIT6:0100 0000,第六位为一
i = 50000; //软件延时
do (i–);
while (i != 0);
}
}
②实现红色小灯亮灭:
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD;// stop watchdog timer
volatile unsigned int i;
P1DIR |= 0x01; // 设置P1.0为输出,P10控制红灯
for (;😉
{
P1OUT ^= BIT0; // 使用异或翻转 P1.0,BIT0就是0x01
i = 50000; // 延时一段时间
do (i–);
while (i != 0);
}
}
总结:
①编译:Ctrl+B;烧录:fn+f11;运行:fn+f8;退出调试状态:Ctrl+f2.
只烧录不运行则需要断电重启才有效果
②一定保证跳线帽不要拔出
③当单片机外部不焊晶振时,默认单片机内部DCO提供系统时钟
④MSP-EXP430G2 板子上红色 LED 由 P1.0 控制,绿色 LED 由 P1.6 控制
⑤注释行/取消注释行:Ctrl+/ 。注意:快捷键控制,都是英文输入法下。

⑥跳线如下:

⑦掌握 volatile 关键字:
  volatile的本意是“易变的”,本意提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。
需要注意的是,没有volatile也可能能正常运行,但是可能修改了编译器的优化级别之后就又不能正常运行了。因此经常会出现debug版本正常,但是release版本却不能正常的问题。所以为了安全起见,只要是等待别的程序修改某个变量的话,就加上volatile关键字。
⑧查看 P1DIR 寄存器在哪里定义:

⑨BIT0和BIT6的意义

笔记二:基本程序框架与端口
一、基本程序框架:
①不考虑被打断情况下的基本程序框架:
主函数
{关闭看门狗
相关内部资源或外设资源的初始化
while(1) //死循环
{执行用户功能程序} }
430 单片机看门狗默认是打开的,而看门狗的作用是:一段时间不进行喂狗操作,则会产生复位操作。因此为了前期程序调试方便,因此都是先执行关看门狗操作。
G2553 单片机在没有配置的情况下,其默认工作时钟是内部 DCO,频率为 1.1Mhz 左右(参阅芯片用户指南中的基本时钟模块)。
②加入中断外设等:
主函数
{
关闭看门狗
设置系统时钟
按键、液晶等外围设备初始化
中断、定时

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值