📄 test.c
字号:
#include<stdio.h>
#include<math.h>
#include<avr/io.h>
#include<avr/interrupt.h>
#include<util/delay.h>
#include<avr/pgmspace.h>
#define uchar unsigned char
#define uint unsigned int
void _init_USART();
void _tran_USART(uint data);
void _init_ADC();
void _start_ADC();
void _time0_init();
void _init_ADC();
void _start_ADC();
void _result_ADC();
uint baud=25;
int main( )
{
cli();
SREG=0x80;
MCUCR=0x00;
GICR=0x00;
TIMSK=0x01;
_init_USART();
_time0_init();
_init_ADC();
sei();
while(1);
}
void _init_USART()
{
UBRRH=(uchar)(baud>>8);
UBRRL=(uchar)baud;
UCSRB=(1<<RXEN)|(1<<TXEN);
UCSRC=(3<<UCSZ0)|(1<<URSEL);
}
void _tran_USART(uint data)
{
while(!(UCSRA&(1<<UDRE)));
UDR=data;
}
void _init_ADC()
{
uint than=0xe0;
ADMUX=than;
ADCSRA=(1<<ADEN)|(1<<ADPS0);
}
void _start_ADC()
{
ADCSRA|=(1<<ADSC);
}
void _result_ADC()
{
uint i;
uint temp;
uint result=0;
_init_ADC();
for(i=0;i<3;i++)
{
_start_ADC();
while(ADCSRA&(1<<ADSC));
temp=ADCH;
result+=temp;
}
result=result/20;
_tran_USART(result);
}
void _time0_init()
{
TCNT0=0x00;
TCCR0=0x01;
}
ISR(TIMER0_OVF_vect)
{
_result_ADC();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -