LM3S1138 , ZLG7290 ,PCF8563 做一个电子钟
7290上做2个按键 key1和key2
当按下key1的时候 控制 某一位数码管闪烁
我这样写程序运行后 按下键后 数码管闪了一下 就不闪了, 请教如何写才能使 我需要闪烁的位不停的闪烁
如果把这段程序写成循环的话可以不停的闪烁
比如向7290的07H和08H写入了 0x70(0111 0000B)和0x20(0010 0000B)后 数码管的第三位是闪烁一次 还是只要我不清除 它这一位就该不停的闪烁
if ( GPIOPinRead(GPIO_PORTD_BASE , GPIO_PIN_1) == 0x00 ) // 如果PD1为低电平
{
Delay(10 * (TheSysClock / 4000));
if ( GPIOPinRead(GPIO_PORTD_BASE , GPIO_PIN_1) == 0x00 ) // 如果PD1为低电平
{
tI2CM_DEVICE ZLG7290={(0x70>>1),0,1,kBuf,0}; //读键值
I2CM_DeviceDataSet(&ZLG7290,1 , kBuf, 1);
ulStatus = I2CM_DataRecv(&ZLG7290); //读出Key
Key=kBuf[0];
if(Key==1)
{
tI2CM_DEVICE ZLG7290={(0x70>>1),0,1,sBuf,0};
sBuf[0]=0x70;
sBuf[1]=i; //需要闪烁的位 ,比如 i=0x20
I2CM_DeviceDataSet(&ZLG7290, 7, sBuf, 2);
I2CM_DataSend(&ZLG7290); // 向7290的07H和08H写入
Delay(10 * (TheSysClock / 4000)); // 延时10*3ms
while( GPIOPinRead(GPIO_PORTD_BASE , GPIO_PIN_1) == 0x00 );// 当PD1为低电平 (可能这边有问题 不过我看的好多程序 等待按键释放 都像类似这样写的,把这句去掉也没有)
}
}
}
|