C的也行 俺做的是TM1721 你稍微修改一下即可用于1621 :lol
#ifdef MODIFY_TM1721_DRIVER //Refee 110212
#define CLK_PORT 0
#define STB_PORT 1
#define DAT_PORT 2
void SendData(BYTE data)
{
BYTE num = 0;
delay_1us(1);
for (num = 0; num < 8; num++)
{
GPIO_O_SET(CLK_PORT, 0);
delay_1us(1);
if (data & 0x01)
GPIO_O_SET(DAT_PORT, 1);
else
GPIO_O_SET(DAT_PORT, 0);
delay_1us(1);
GPIO_O_SET(CLK_PORT, 1);
data >>= 1;
delay_1us(1);
}
delay_1us(1);
}
void SendCommand(BYTE Cmd)
{
GPIO_O_SET(STB_PORT, 0);
SendData(Cmd);
GPIO_O_SET(STB_PORT, 1);
delay_1us(1);
}
void clean_tm1721_buffer()
{
GPIO_M_SET(CLK_PORT, 1);
GPIO_M_SET(STB_PORT, 1);
GPIO_M_SET(DAT_PORT, 1);
GPIO_E_SET(CLK_PORT, 1);
GPIO_E_SET(STB_PORT, 1);
GPIO_E_SET(DAT_PORT, 1);
SendCommand(0x3F);
GPIO_O_SET(STB_PORT, 0);
SendData(0x41);
SendData(0x3F);
SendData(0x3F);
SendData(0x3F);
SendData(0x00);
GPIO_O_SET(STB_PORT, 1);
SendCommand(0x40);
SendCommand(0x85);
delay_1us(1);
GPIO_M_SET(CLK_PORT, 0);
GPIO_M_SET(STB_PORT, 0);
GPIO_M_SET(DAT_PORT, 0);
}
#endif
|