1.首先注意 表达式中的符号优先级
需求:
求解:
int CPCIAcquisitionCard::SetBTime(unsigned int &year, unsigned int &month, unsigned int &day, unsigned int &hour, unsigned int &minute, unsigned int &sec)
{
unsigned int controlStatus = 0;
int status = AknwSuccess;
status = CPCIAcquisitionCardReadRegister(0,10,&controlStatus);
if(status != AknwSuccess){
return status;
}
controlStatus&=0x0;
controlStatus |= year;
controlStatus = (controlStatus<<8);
controlStatus|= month;
controlStatus=(controlStatus<<8);
controlStatus|= day;
controlStatus= (controlStatus<<8);
controlStatus|=hour;
CPCIAcquisitionCardWriteRegister(0,10,&controlStatus);
status = CPCIAcquisitionCardReadRegister(0,11,&controlStatus);
if(status != AknwSuccess){
return status;
}
controlStatus&=0xFFFFFF00;
controlStatus |= sec;
controlStatus&=0xFFFF00FF;
controlStatus|= (minute<<8);
CPCIAcquisitionCardWriteRegister(0,11,&controlStatus);
}