嵌入式课程作业三

1、学习CH04示例程序,包括gpio.c和4个工程中的main.c.
2、给出 gpio_set(LIGHT_RED,LIGHT OFF); 语句中LIGHT RED和LIGHT OFF的值是多少?贴出每一步的査找截图。
3、用直接地址编程方式,实现红绿蓝三灯轮流闪烁

4、用调用构件方式,实现红绿蓝的八种组合轮流闪烁

2、给出 gpio_set(LIGHT_RED,LIGHT OFF); 语句中LIGHT RED和LIGHT OFF的值是多少?贴出每一步的査找截图。

LIGHT RED值为(PTB_NUM|7) ;

LIGHT OFF值为1;

3、用直接地址编程方式,实现红绿蓝三灯轮流闪烁

4、用调用构件方式,实现红绿蓝的八种组合轮流闪烁

初始化灯光:

切换灯光:

//(2)======主循环部分(开头)========================================
	for(;;)   //for(;;)(开头)
	{
//(2.1)主循环次数变量+1
        mMainLoopCount++;
//(2.2)未达到主循环次数设定值,继续循环
		if (mMainLoopCount<=12888999)  continue;
//(2.3)达到主循环次数设定值,执行下列语句,进行灯的亮暗处理
//(2.3.1)清除循环次数变量
		mMainLoopCount=0; 
//(2.3.2)如灯状态标志mFlag为'L',灯的闪烁次数+1并显示,改变灯状态及标志
		if (mFlag=='1')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='2';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_OFF);
			gpio_set(LIGHT_GREEN,LIGHT_ON);
			gpio_set(LIGHT_BLUE,LIGHT_ON);
		}
		else if (mFlag=='2')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='3';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_ON);
			gpio_set(LIGHT_GREEN,LIGHT_OFF);
			gpio_set(LIGHT_BLUE,LIGHT_ON);
		}
		else if (mFlag=='3')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='4';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_ON);
			gpio_set(LIGHT_GREEN,LIGHT_ON);
			gpio_set(LIGHT_BLUE,LIGHT_OFF);
		}
		else if (mFlag=='4')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='5';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_OFF);
			gpio_set(LIGHT_GREEN,LIGHT_OFF);
			gpio_set(LIGHT_BLUE,LIGHT_ON);
		}
		else if (mFlag=='5')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='6';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_OFF);
			gpio_set(LIGHT_GREEN,LIGHT_ON);
			gpio_set(LIGHT_BLUE,LIGHT_OFF);
		}
		else if (mFlag=='6')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='7';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_ON);
			gpio_set(LIGHT_GREEN,LIGHT_OFF);
			gpio_set(LIGHT_BLUE,LIGHT_OFF);
		}
		else if (mFlag=='7')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='8';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_OFF);
			gpio_set(LIGHT_GREEN,LIGHT_OFF);
			gpio_set(LIGHT_BLUE,LIGHT_OFF);
		}
		else if (mFlag=='8')                    //判断灯的状态标志
		{
			mLightCount++;  
			mFlag='1';                       //灯的状态标志
			gpio_set(LIGHT_RED,LIGHT_ON);
			gpio_set(LIGHT_GREEN,LIGHT_ON);
			gpio_set(LIGHT_BLUE,LIGHT_ON);
		}
	}  //for(;;)结尾
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值