MSP430G2231的基本外设IO端口学习
#include
/***********************************************************************************
* Software Toggle P1.0
* P1DIR:端口输出输入方向设置寄存器
* P1OUT:端口数值寄存器 WDTCTL = WDTPW + WDTHOLD;
* 首先设置看门狗寄存器禁止
*
***********************************************************************************/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x01; // Set P1.0 to output direction
for (;;)
{
volatile unsigned int i;
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
i = 50000; // Delay
do (i--);
while (i != 0);
}
}
首先看的是头文件是MSP430G2231的头文件
主函数中WDTCTL = WDTPW + WDTHOLD; 是禁止看门狗
P1DIR:端口输出输入方向设置寄存器
P1OUT:端口数值寄存器
下面是延时函数了
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
这句很精典,学习了~
不明白那个volatile 这个是干嘛用的。在标准C里面像没有了,没有用过,
是啥意思
回复 5楼 radxiaohe 的帖子
标准C里面是有的
MS是为了防止编译器优化吧
MSP430G2231的基本外设IO端口学习
#include
/***********************************************************************************
???#include 什么?
回复 10楼 wx85105157 的帖子
应该是包含MSPG2231的头文件,
不过这段程序显然具有非常好的通用性,其他MSP430器件也能用的
回复 5楼 radxiaohe 的帖子
是不让编译器优化的意思,其实没什么大用处了,不加也行
没有汇编的例程?
求汇编例程,实在不想(自己不会,或者说会一点点很勉强)用c
引用: 原帖由 wfl2775 于 2011-11-15 10:02 发表
是不让编译器优化的意思,其实没什么大用处了,不加也行
最好是要加,不然会有莫名其妙的问题!volatile作用很大的
谢谢分享,学习了,不过为什么在CCS5.2 中直接#include不行呢,非要写成#include?
回复 5楼 radxiaohe 的帖子
用来定义变量的,比如定义一个延时函数的话,没有这个变量,运行的时候是不承认的,直接跳过这个语句。。。