Professional Documents
Culture Documents
Admux Adlar: ADC - Init
Admux Adlar: ADC - Init
{
// Output ajuste a la derecha
ADMUX &=~ (1<<ADLAR);
// Divisor de Frecuencia = 128 -> 16000000/128 = 125 KHz (entre 50 y 200 KHz)
ADCSRA |= (1<<ADPS0);
ADCSRA |= (1<<ADPS1);
ADCSRA |= (1<<ADPS2);
}
//Desactivamos el ADC
ADCSRA &=~ (1<<ADEN);
void USART_config()
{
//Config as UART
//Parity disable
//Baud rate
UCSR0A |= (1<<U2X0);
UBRR0 = (F_CPU/8/9600)-1;
UCSR0B |= (1<<TXEN0);
UCSR0B |= (1<<RXEN0);
void Timer1_init()
{
//Timer1 settings
TCCR1A = (0<<COM1A1)|(0<<COM1A0)|(0<<WGM10)|(0<<WGM11);
TCCR1B = (0<<WGM12)|(0<<WGM13)|(1<<CS10)|(0<<CS11)|(1<<CS12);
TCNT1 = 34286;
TIMSK1 |= (1<<TOIE1);
TIFR1 = 0;
PORTB &=~ (1<<DDB5);
}
void Timer1_1seg()
{
TCCR1A = 0;
TCCR1B = (1<<CS12);
TCNT1 = 46005;
TIMSK1 = (1<<TOIE1);
TIFR1 = 0;
PORTB &=~ (1<<DDB5);
}
//Pin configuration
DDRB |= (1<<DDB1);
//Output active non inverting mode
TCCR1A |= (1<<COM1A1);
//FAST PWM
TCCR1A |= (1<<WGM11);
TCCR1B |= (1<<WGM12);
TCCR1B |= (1<<WGM13);
ICR1 = (F_CPU/1024/freq)-1;
OCR1A =(((F_CPU/1024/freq)-1)*duty)/100;
//PWM on
TCNT1 = 0;
//PrescaleR 1024
TCCR1B|= (1<<CS10);
TCCR1B|= (1<<CS12);
FCPU
F out =
2 N ( 1+OCR )
FCPU
OCR= −1
2 N Fout