There was a problem with your SQL connection - Please contact the administrator
Prototype
GetPerReg (reg)
Description
Get peripheral register reg (8 bit)
Return
The value of the register
Code Example
The following code example uses the GetPerReg function.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | /* Example Code * GetPerReg/SetPerReg * * get reg, val * get valInit * * return valInit and * if useParams * new reg of Periph * else * 0x01 (new reg == val) or 0x00 (new reg != val) * on 16 bits * * example VMExecuteCmd: * cmd: |reg |val * 0xfb 0x0e 0x00 0x0c 0x00 0x0e [0x?? 0x?? 0x?? = macAdress] 0x00 0x00 0x01 * rsp: 0xfb 0x0a 0x00 0x2d 0x00 0xe1 0x1e 0x01 */ #include "SMK900.evi" #define SENSORCODE 0x01 function exec_aircmd(){ local rxLen; local useParams; local reg, valTmp, val; local i; local result; rxLen=GetAirBuf(0, 0, 20); if (rxLen>=4){ // 1 byte for paketID + 3 bytes of payload (3 bytes for param) useParams= true ; reg=GetBuffer_16(1); val=(GetBuffer_U8(3)&0x01); } else { useParams= false ; reg=0; val=0; } valTmp=GetPerReg(reg); SetPerReg(reg,val); Delay(100); SetBuffer(0,valTmp,1); valTmp=GetPerReg(reg); if (useParams){ SetBuffer(1,valTmp,1); //Send(2); } else { if (valTmp==val){ result=1; } else { result=0; } SetBuffer(1,result,1); //Send(1); } Send(2); } function main() { local execType; execType = GetExecType(); if (execType==MESHEXECTYPE_AIRCMD_bm){ exec_aircmd(); } } |