Я изучал этот демонстрационный код сторожевого таймера ITE8712, когда увидел это:
void InitWD(char cSetWatchDogUnit, char cSetTriggerSignal)
{
OpenIoConfig(); //open super IO of configuration for Super I/O
SelectIoDevice(0x07); //select device7
//set watch dog counter of unit
WriteIoCR(0x72, cSetWatchDogUnit|cSetTriggerSignal);
//CloseIoConfig(); //close super IO of configuration for Super I/O
}
и мне интересно, что подразумевается под этой строкой:
cSetWatchDogUnit|cSetTriggerSignal
, потому что функция WriteIoCR выглядит так:
void WriteIoCR(char cIndex, char cData)
{
//super IO of index port for Super I/O
//select super IO of index register for Super I/O
outportb(equIndexPort,cIndex);
//super IO of data for Super I/O
//write data to data register
outportb(equDataPort,cData);
}
Итак, cIndex должен быть 0x72, но как насчет cData? Я действительно не понимаю "|" вещь, поскольку я использовал ее только для OR ("||") в условном выражении.