本帖最后由 kolokolo 于 2020-1-6 09:13 编辑
用msp430f149读角度编码器AS5048,io模拟SPI。现在能读取数据,但是设置零点的时候始终不行。是操作顺序错了吗?
if(mstate == SETZERO)//设置当前角度为0°
{
mstate = 0;
zerodata = readreg(CMD_ANGLE);//读取当前角度值
hdata = zerodata & 0x3fc0;//高8位
hdata >>= 6;
ldata = zerodata & 0x003f;//低6位
unsigned int eventemp = parity_even(hdata);//偶校验操作
hdata |= eventemp;
eventemp = parity_even(ldata);
ldata |= eventemp;
writereg(CMD_ProgramControl,0x0001);//编程位enable
delay(10);
whres1 = writereg(CMD_OTPHigh,hdata);//写入高位
delay(10);
whres2 = writereg(CMD_OTPLow,hdata);//写入低位
delay(100);
}
|