diff --git a/src/main.c b/src/main.c index f2dd498..09c5b1d 100644 --- a/src/main.c +++ b/src/main.c @@ -10,14 +10,19 @@ #define MOS03 PB2 // Lights Enable // PWM Devices -#define FAN01 PD4 // Fan Peltier Hot Side Speed -#define FAN02 PD5 // Fan Peltier Cold Side Speed -#define HOT01 PD7 // Heating Temperature +#define FAN01 PD4 // NF-12 Fan Peltier Hot Side Speed +#define FAN02 PD5 // NF-A8 Fan Peltier Cold Side Speed +#define FAN03 PD7 // NF-R8 Fan Heating Element Speed + +// Sensors +#define AHT01 0x0 // Upper Sensor TWI Channel +#define AHT02 0x1 // Middle Sensor TWI Channel +#define AHT03 0x2 // Lower Sensor TWI Channel #define PWM_CYCLE_TOP (F_CPU / 25000) // 25 KHz #define FAN01_MIN_DUTY (PWM_CYCLE_TOP * 0.2f) #define FAN02_MIN_DUTY (PWM_CYCLE_TOP * 0.2f) -#define HOT01_MIN_DUTY 0 +#define FAN03_MIN_DUTY (PWM_CYCLE_TOP * 0.2f) static void SetPinDefaults(void); static void SetTwiChannel(int channel); @@ -41,7 +46,7 @@ int main(void) // PWM_Set(FAN01, 50); // PWM_Set(FAN02, 50); - // PWM_Set(HOT01, 50); + // PWM_Set(FAN03, 0); SetMosState(MOS01, false); SetMosState(MOS02, false); @@ -49,7 +54,7 @@ int main(void) SetPwmValue(FAN01, 50); SetPwmValue(FAN02, 50); - SetPwmValue(HOT01, 0); + SetPwmValue(FAN03, 20); SetTwiChannel(0); // I2C Mux @@ -68,24 +73,24 @@ static void SetPinDefaults(void) // Initialize Pin Outputs // ====================== - // PB0: MOSFET #1 (Peltier) + // PB0: MOSFET #1 Peltier DDRB |= BIT(PB0); // Out PORTB &= ~BIT(PB0); // Low - // PB1: MOSFET #2 (Heating) + // PB1: MOSFET #2 Heating DDRB |= BIT(PB1); // Out PORTB &= ~BIT(PB1); // Low - // PB2: MOSFET #3 (Lights) + // PB2: MOSFET #3 Lights DDRB |= BIT(PB2); // Out PORTB |= BIT(PB2); // High - // PD4: PWM Peltier Hot Side - // PD5: PWM Peltier Cold Side - // PD7: PWM Heating + // PD4: PWM NF-12 Fan Peltier Hot Side + // PD5: PWM NF-A8 Fan Peltier Cold Side + // PD7: PWM NF-R8 Fan Heating Element DDRD |= BIT(PD4) | BIT(PD5) | BIT(PD7); @@ -95,9 +100,11 @@ static void SetPinDefaults(void) TCCR2 = BIT(WGM20) | BIT(WGM21) | BIT(COM21) | BIT(CS20); ICR1 = PWM_CYCLE_TOP; // 8000 MHz / 25000 KHz + // TODO: Get 25 KHz frequency for timer 3 + OCR1A = FAN01_MIN_DUTY; OCR1B = FAN02_MIN_DUTY; - OCR2 = HOT01_MIN_DUTY; + OCR2 = FAN03_MIN_DUTY; } static void SetTwiChannel(int channel) @@ -168,7 +175,7 @@ static void SetMosState(int port, bool state) } // Port must be PD4, PD5 or PD7 and the value is -// expected to be in the range between 0 and 100. +// expected to be in the range between 0 and 100 static void SetPwmValue(int port, int value) { int n;