Start implementing AHT20 sensor reading

This commit is contained in:
2024-09-03 17:29:06 +02:00
parent 0e15d5b1e2
commit 83f6fa58a4
5 changed files with 173 additions and 0 deletions

View File

@@ -77,6 +77,35 @@ int TWI_Write(unsigned char data)
return 0;
}
unsigned char TWI_Read_ACK(void)
{
// Read data and acknowledge
TWCR = (1 << TWEN) // Enable TWI
| (1 << TWINT) // Clear interrupt flag
| (1 << TWEA); // Send acknowledgment
// Wait until data read
while ((TWCR & (1 << TWINT)) == 0);
return TWDR;
}
unsigned char TWI_Read_NACK(void)
{
// Read data, expect last byte
TWCR = (1 << TWEN) // Enable TWI
| (1 << TWINT); // Clear interrupt flag
// Wait until data read
while ((TWCR & (1 << TWINT)) == 0);
return TWDR;
}
int TWI_Wait_ACK(void)
{
unsigned int status;

View File

@@ -10,6 +10,8 @@ int TWI_Init(void);
int TWI_Start(unsigned char addr, unsigned char mode);
int TWI_SetChannel(int channel);
int TWI_Write(unsigned char data);
unsigned char TWI_Read_ACK(void);
unsigned char TWI_Read_NACK(void);
int TWI_Wait_ACK(void);
int TWI_Stop(void);