Вс янв 07, 2024 12:58:31
#include <avr/io.h>
#include <avr/interrupt.h>
void init();
void uart_init();
void timer1_init();
void adc_init();
void uart_send( char x );
ISR( ADC_vect )
{
uart_send( ADCH );
}
int main(void)
{
init();
while (1){}
}
void init()
{
uart_init();
timer1_init();
adc_init();
sei();
}
void uart_init()
{
UBRRL = 25; // 9600bod at CLK = 4MHz
UCSRB = 1 << TXEN;
}
void timer1_init()
{
OCR1A = 31250;
OCR1B = OCR1A;
TCCR1B = ( 1 << WGM12 ) | ( 1 << CS11 ) | ( 1 << CS10 ); // /64 2Hz at CLK=4MHz
}
void adc_init()
{
ADMUX = ( 1 << REFS0 ) | ( 1 << ADLAR ); // PA0, AVCC, PA0
SFIOR = ( 1 << ADTS2 ) | ( 1 << ADTS0 ); // COMPB
ADCSRA = ( 1 << ADEN ) | ( 1 << ADSC ) | ( 1 << ADATE ) | ( 1 << ADIE ) | ( 1 << ADPS2 ) | ( 1 << ADPS0 ); //COMPB, ADCclk=125kHz
}
void uart_send( char x )
{
while ( !( UCSRA & ( 1 << UDRE ) ) );
UDR = x;
}
Вс янв 07, 2024 15:01:40
Вс янв 07, 2024 15:23:43
Вс янв 07, 2024 16:02:31
Вс янв 07, 2024 16:11:02
TIFR |= (1 << OCF1B);
Вс янв 07, 2024 16:45:14
TIFR |= (1 << OCF1B);
#include <avr/io.h>
#include <avr/interrupt.h>
void init();
void uart_init();
void timer1_init();
void adc_init();
void uart_send( char x );
ISR( ADC_vect )
{
uart_send( ADCH );
TIFR |= (1 << OCF1B);
}
int main(void)
{
init();
while (1){}
}
void init()
{
uart_init();
timer1_init();
adc_init();
sei();
}
void uart_init()
{
UBRRL = 25; // 9600bod at CLK = 4MHz
UCSRB = 1 << TXEN;
}
void timer1_init()
{
OCR1A = 31250;
OCR1B = OCR1A;
TCCR1B = ( 1 << WGM12 ) | ( 1 << CS11 ) | ( 1 << CS10 ); // /64 2Hz at CLK=4MHz
}
void adc_init()
{
ADMUX = ( 1 << REFS0 ) | ( 1 << ADLAR ); // PA0, AVCC, PA0
SFIOR = ( 1 << ADTS2 ) | ( 1 << ADTS0 ); // COMPB
ADCSRA = ( 1 << ADEN ) | ( 1 << ADATE ) | ( 1 << ADIE ) | ( 1 << ADPS2 ) | ( 1 << ADPS0 ); //COMPB, ADCclk=125kHz
}
void uart_send( char x )
{
while ( !( UCSRA & ( 1 << UDRE ) ) );
UDR = x;
}
Вс янв 07, 2024 20:32:17