Files
2025-03-15 16:31:30 +01:00

29 lines
1.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "header.h"
// 1.1.7 : AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6
// 1.1.8 : AREF is the analog reference pin for the A/D Converter
// 24.4 : frequency needs to be between 50kHz and 200kHz, for less than 10bits accuracy it can be >200kHz
// -> Frequence_ADC = Frequance_CPU / Prescaler (Fadc = Fcpu/P):
// - P = 2 -> Fadc = 16,000,000 / 2 = 8,000,000 = 8MHz
// - P = 4 -> Fadc = 16,000,000 / 4 = 4,000,000 = 4MHz
// - P = 8 -> Fadc = 16,000,000 / 8 = 2,000,000 = 2MHz
// - P = 16 -> Fadc = 16,000,000 / 16 = 1,000,000 = 1MHz
// - P = 32 -> Fadc = 16,000,000 / 32 = 500,000 = 500KHz
// - P = 64 -> Fadc = 16,000,000 / 64 = 250,000 = 250KHz -> OK
// - P = 128 -> Fadc = 16,000,000 / 128 = 125,000 = 125KHz -> OK
#define ADC_PRESCALER 64 // Table 24-5 : can only be 2, 4, 8, 16, 32, 64, or 128
volatile uint8_t adc_channel = 0;
// read potentiometer value and print it in uart as hexadecimal 2-number
int main() {
char buffer[4];
SREG |= ENABLE_GLOBAL_INTERRUPT; // 7.3.1 : Status Register, bit 7 : I Global Interrupt Enable
uart_init();
adc_init(ADC_PRESCALER);
timer_1B_init();
while(1);
}