#include "common.h" #include "bus/usart.h" #include "bus/mosfet.h" #include "bus/pwm.h" #include "bus/twi.h" #include // TODO: Get readings from ADC ADS1115 over TWI. // TODO: Implement optional sensor value check with CRC8. // TODO: Either implement software PWM for the FAN03 timer // (which will be quite complicated) or pick a chip with // more than two 16-bit PWM outputs like the ATmega328PB. // https://www.mikrocontroller.net/articles/Soft-PWM int Init(void) { USART_Init(); sei(); Info("Initializing..."); MOS_Init(); PWM_Init(); TWI_Init(); MOS_Enable(MOS03); // MOS_Disable(MOS01); PWM_SetValue(FAN01, 50); PWM_SetValue(FAN02, 50); PWM_SetValue(FAN03, 20); TWI_SetChannel(AHT01); TWI_AHT20_Init(); TWI_SetChannel(AHT02); TWI_AHT20_Init(); TWI_SetChannel(AHT03); TWI_AHT20_Init(); return 0; } void Update(void) { float temp, rhum; TWI_SetChannel(AHT01); TWI_AHT20_Read(&temp, &rhum); Info("TEMP=%.2f, RHUM=%.2f", temp, rhum); TWI_SetChannel(AHT02); TWI_AHT20_Read(&temp, &rhum); Info("TEMP=%.2f, RHUM=%.2f", temp, rhum); TWI_SetChannel(AHT03); TWI_AHT20_Read(&temp, &rhum); Info("TEMP=%.2f, RHUM=%.2f", temp, rhum); } int main(void) { Init(); for (;;) { Update(); Sleep(1000); } return 0; }