You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TM16XX and DS1302 their pin definitions are very similar, so I connect their pins together to do use.
The DS1302 also uses pinMode() to change the GPIO settings, so I recommend adding pinMode() to sendData() to make sure it doesn't cause any problems in use.
void TM16xx::sendData(byte address, byte data)
{
// Pull-up off
pinMode(dataPin, OUTPUT);
digitalWrite(dataPin, LOW);
sendCommand(TM16XX_CMD_DATA_FIXED); // use fixed addressing for data
start();
send(TM16XX_CMD_ADDRESS | address); // address command + address
send(data);
stop();
}
uint32_t TM1620B::getButtons(void)
{
// Pull-up off
pinMode(dataPin, OUTPUT);
digitalWrite(dataPin, LOW);
word keys_K2 = 0;
byte received;
start();
send(TM16XX_CMD_DATA_READ); // send read buttons command
for (int i = 0; i < 3; i++)
{
received = receive();
keys_K2 |= ((((received & _BV(1)) >> 1) | ((received & _BV(4)) >> 3)) << (2 * i));
}
stop();
return (uint32_t)keys_K2;
}
The text was updated successfully, but these errors were encountered:
Hello @gary7530 , thank you for your suggestion. I know that for I2C it is custom to only drive a pin low when sending data and keep it floating on high impedence when inactive, having pull-up resistors on the databus. For the TM16xx I've seen another implementation doing the same.
I appreciate your suggestion as it allows for wider use of shared pins when combining other libraries. I do have a DS1302 module in my collection, so when I can find some time I will have a look and test your suggestion and assess its impact.
I will keep this issue open and post my finding here.
TM16XX and DS1302 their pin definitions are very similar, so I connect their pins together to do use.
The DS1302 also uses pinMode() to change the GPIO settings, so I recommend adding pinMode() to sendData() to make sure it doesn't cause any problems in use.
The text was updated successfully, but these errors were encountered: