|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 cjsb37 于 2013-4-29 09:04 编辑
目前我在使用多个PRD来建立LED的闪灯方式,我的程序请见下,我有如下疑问:
请问我怎样把led这个变量通过PRD0控制的control_prd函数的参数k传递给PRD1控制的led_on函数中的参数i(或者PRD2控制的led_off函数中的参数j)。我所用的PRD0.fxnobj.arg0=led这种方式是否有效?请高手指教下。十分谢谢!
int TotalEvents =0, NumEvents=0, EventCount=0,led=0;
. something;
if(TotalEvents)
{
NumEvents = Function(pSensorContext[channelCount], EvocBuffer, ((TotalEvents > NUM_EVENTS) ? NUM_EVENTS: TotalEvents));
for(EventCount=0; EventCount < NumEvents; EventCount++)
{
////
PRD0.fxnobj.arg0=led;
PRD_start(&RD0);
PRD_stop(&RD0);
////
switch(EvocBuffer[EventCount].eventDescription.type)
{
case TRIPWIRE_EVENT:
led=1;
printf(something );
////
PRD0.fxnobj.arg0=led;
PRD_start(&RD0);
PRD_stop(&PRD0);
////
break;
//对应的PRD函数所控制的函数:
extern PRD_Obj PRD1;
extern PRD_Obj PRD2;
Void control_prd(Int k) //control_prd对应PRD0,10ms,设置为one-shot
{
DM642_GPIO_Init();
PRD1.fxnobj.arg0=k;
PRD_start(&PRD1); //PRD1调用led_on函数,控制灯开,设置为one-shot,50ms
PRD2.fxnobj.arg0=k;
PRD_start(&PRD2); //PRD2调用led_off函数,控制灯灭,设置为one-shot,150ms
}
Void led_on(Int i)
{
switch(i)
{
case 0:
DM642_GPIO_SetValue(0, 1);
break;
case 1:
DM642_GPIO_SetValue(1, 1);
break;
case 2:
DM642_GPIO_SetValue(2, 1);
break;
case 3:
DM642_GPIO_SetValue(3, 1);
break;
case 4:
DM642_GPIO_SetValue(4, 1);
break;
case 5:
DM642_GPIO_SetValue(5, 1);
break;
case 6:
DM642_GPIO_SetValue(6, 1);
break;
case 7:
DM642_GPIO_SetValue(7, 1);
break;
default:
break;
}
}
Void led_off(Int j)
{
switch(j)
{
case 0:
DM642_GPIO_SetValue(0, 0);
break;
case 1:
DM642_GPIO_SetValue(1, 0);
break;
case 2:
DM642_GPIO_SetValue(2, 0);
break;
case 3:
DM642_GPIO_SetValue(3, 0);
break;
case 4:
DM642_GPIO_SetValue(4, 0);
break;
case 5:
DM642_GPIO_SetValue(5, 0);
break;
case 6:
DM642_GPIO_SetValue(6, 0);
break;
case 7:
DM642_GPIO_SetValue(7, 0);
break;
default:
break;
}
}
|
|