新手提问:关于MSP430G2553的延时程序问题

新手提问:关于MSP430G2553的延时程序问题,第1张

今天在学习MSP430G2553的时候想试试能不能通过延时来实现LED灯的闪烁,然后用了下面第一种的程序:

#include "MSP430G2553.h"

//-----在main函数前提前声明函数-----
void P1_IODect();
void P13_Onclick();
void GPIO_init();

void main(void) {
	WDTCTL = WDTPW + WDTHOLD; //关狗
	GPIO_init(); //IO初始化
	while(1){
		unsigned int k = 100000;
		while(k>0){
			k--;
		}
		P1OUT ^= BIT0;
		P1OUT ^= BIT6;
	}
}

void GPIO_init(){
//-----设定P1.0和P1.6的输出初始值-----
	P1DIR |= BIT0+BIT6; //设定P1.0和P1.6为输出
	P1OUT |= BIT0; //设定P1.0初值
	P1OUT &= ~BIT6; //设定P1.6初值
}

结果是两盏灯一直亮,没有闪烁。

后来又把11-15行的程序

		unsigned int k = 100000;
		while(k>0){
			k--;
		}

改成教科书上的

		__delay_cycles(100000);

就成功了,我想问问为什么?

有大神知道吗?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2717356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存