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

今日头条

1151人已加入

描述

今天在学习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);

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

有大神知道吗?

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分