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(;;)结尾