完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
void main(void)
{ WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= BIT4; // Set P1.0 to output direction for (;;) { P1OUT ^= BIT4; // Toggle P1.0 using exclusive-OR delay(); // Delay } } void delay() { volatile unsigned int i; i=50000; do(i--); while(i!=0); } 闪闪灯的程序,为什么把volatile去掉等就闪不起来了呢? |
|
相关推荐
12个回答
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
首先说下P1DIR |= BIT4; // Set P1.4 to output direction;
把int *a改为volatile int* i编译器就不会自动把它优化掉了。在整个运算过程中,对变量*i的值读取了再次。防止因变量*i的值在这一期间发生了改变,而导致程序结果的错误。i是个变量。用volatile防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。 |
|
|
|
贠亮亮 发表于 2015-9-13 10:49 谢谢,貌似有点明白了 |
|
|
|
贠亮亮 发表于 2015-9-13 10:49 那这个volatile什么时候加什么时候不用加啊? |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2914个成员聚集在这个小组
加入小组2664 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
2969 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2259 浏览 1 评论
4685 浏览 1 评论
2470 浏览 1 评论
922浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
2969浏览 2评论
2664浏览 1评论
1055浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 10:16 , Processed in 1.416675 second(s), Total 73, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191