Start implementing AHT20 sensor reading
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user