Курсовая работа: Разработка универсального шестиканального термометра
char txd_index=txd_buf_len-1;
#define dis_measure_ok 1 // 0x0002 // измерение завершилось 1
#define dis_measure 2 // 0x0004 // запущено измерение(счет) 2
unsigned char dis_flag=(1<<dis_measure); // флаги диспетчера
#define adc_start {ADCSR|=(1<<ADSC);}
__flash const unsigned char table_ascii[]={'0','1', '2', '3', '4', '5', '6', '7', '8','9', 'E', 'r', 'o', ' ', ' ', ' '};
void d2_bcd(long val);
void measure_a(void);
void display_parm(void);
void count_time_gen_init(void);
void count_time_ind_init(void);
void fotm_trx(void);
void transmit(void);
C_task void main(void)
{// main
count_50=count_50_init; // init count 500 ms
// инициализация АЦП
ADMUX=(1<<REFS0);// Vref=VACC
ADCSR=((1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0));
// инициализация UART
UBRRH=ubr19200>>8;
UBRRL=ubr19200;
UCSRB= (1<<TXEN)|(1<<RXEN); //разр прием/перед
UCSRC = 0;// Async. mode, 8N1
// num_ch=6; // иниц счетчика каналов
// init and start TCNT0
t0_ext=t0_ext_init;
TCNT0=t0_init;
TIMSK |= ((1<<TOIE0)|(1<<TOIE1)); // irq T0, T1 enable