最近在做一个打印机程序,找了个例子,有个地方不懂,请大虾们指点!
程序如下:
void Timer0_ISR( void ) interrupt 1 using 2
{
TR0 = 0;
if( gExciteSetp ==4 ) gExciteSetp=0; //如果走纸电机激励计数为4,那么清0
gP3Buf = ( gP3Buf & 0x9F )|MotorControl[ gExciteSetp++ ];
P3 = gP3Buf; //输出打印头走纸电机驱动字
TH0 = *pSpeedTab;
TL0 = *(pSpeedTab + 1 );
TR0 = 1;
if( bMotorMode ) pSpeedTab+=2; //加速
bNextSetp = 1; //1 走纸电机输出下一步
gCntSetp--; //走纸电机步计数器 自减1
}
uint8 *pSpeedTab; //指向打印头走纸电机加速表指针变量
uint8 gP3Buf; //P3口输出缓冲
uint8 gExciteSetp; //走纸电机激励计数
uint8 gCntSetp; //走纸电机步计数器
bit bNextSetp; // 1 走纸电机输出下一步
bit bMotorMode; //走纸电机运行方式 1 加速 0 匀速
static uint8 MotorControl[ ] = { 0x20,0x00,0x40,0x60 }; //步进电机输出控制字
问题:
gP3Buf = ( gP3Buf & 0x9F )|MotorControl[ gExciteSetp++ ];
这句是给gP3Buf 赋值,
( gP3Buf & 0x9F )|MotorControl[ gExciteSetp++ ]是什么意思我不懂
发表时间:2008年5月8日11:06:57