Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






uint8_t i;






if (--time_regim< =0)

{

i=view_regim;

if (++i> sizeof(setup.time)-1) i=0;

while(setup.time[i]==0){

if (i==view_regim) {time_regim=1; return; }

if (++i> sizeof(setup.time)-1) i=0;

}

view_regim=i;

time_regim=setup.time[i];

}

}

//-------------------------------------

Void data_led(void)

{

Unsigned char i;

for(i=0; i< 4; i++)

lcd_buffer[i]=0x0;

If (view_zadanie)

{

if (time_flag & BIT(_viewp))

{

for(i=0; i< 4; i++)

lcd_buffer[i]=str_setup[view_zadanie-1][i];

}

else {

lcd_buffer[0]=str_setup_1digit[view_zadanie-1];

t_in_bcd(setup.t_stat[view_zadanie-1], pwire0);

}

}

Else

{

if (eep_eer) i=0xFF;

else i=view_regim;

if (time_flag & BIT(_viewp)) i=3;

switch (i){

case 0: //t_П - отображается температура подачи воды

t_in_bcd(setup.temper[0], pwire0);

lcd_buffer[0]=font[f_Prus];

Break;

case 1: //t_о - отображается температура обратки

t_in_bcd(setup.temper[1], pwire1);

lcd_buffer[0]=font[f_o];

Break;

case 2: //t_Р - отображается реальная разница между подачей и обраткой

t_in_bcd(setup.temper[0]-setup.temper[1], pwire1);

lcd_buffer[0]=font[f_P];

Break;

case 3: //показывает конец настроек

lcd_buffer[1]=font[f_e];

lcd_buffer[2]=font[f_n];

lcd_buffer[3]=font[f_d];

Break;

case 0xFF:

lcd_buffer[1]=font[f_e];

lcd_buffer[2]=font[f_e];

lcd_buffer[3]=font[f_P];

Break;

default: t_in_bcd(setup.temper[0], pwire0);

}

//if (PINDRIVE & swt_t2)

//t_in_bcd(t_stat[ds0], pwire0);

// t_in_bcd(setup.temper[0], pwire0);

// else

// t_in_bcd(t_stat[ds1], pwire1);

}

}

//-------------------------------------

void data_eeprom_read(void){

unsigned char i, a, *adr;

adr=(uint8_t *) & setup.t_stat[0];

for (a=i=0; i< sizeof(setup)-sizeof(setup.temper); i++, adr++)

{

*adr= EEPROM_read(i);

a+=(*adr);

}

if (a! =EEPROM_read(EEP_crc)) eep_eer=1;

}

Int main(void)

{

uint8_t t_1sek=0;

Cli();

Avr_init();

Data_eeprom_read();

PORTDRIVE & = ~(DRIVE_TEN_1|DRIVE_TEN_2);

DetectPresence();

if (out_1wire){

writebyte(0xCC); //SKIP ROM [CCh]

writebyte(0xBE); //READ SCRATCHPAD [BEh]

readbyte(& temper[0], & temper[0]); //LSB

readbyte(& temper[0], & temper[0]); //MSB

readbyte(& temper[0], & temper[0]);

readbyte(& temper[0], & temper[0]);

readbyte(& temper[0], & temper[1]);

//byte 4 Configuration Register* 0x1F-9bit 94msek; 3F-10bit 188msek; 0x5F-11bit 375msek; 0x7F - 12 bit 750mSek;

if (((temper[0]! =0x7F)& & (pwire0 & out_1wire))

|| ((temper[1]! =0x7F)& & (pwire1 & out_1wire))){

scratchpad_save(); //10ms

time[0]=255;

while(time[0]);

time[0]=255;

while(time[0]);

}

temper[0]=0;

}

While(1)

{

if (time_flag & BIT(_led))//

{

time_flag & = ~BIT(_led);

time[_led]=70; //~0.00

Data_led();

Skan_key();

Key_action();

Display();

if (++znmesto==4)

{

znmesto=0;

}

Receive_t();

}

if (time_flag & BIT(_01sek))

{

time_flag & = ~BIT(_01sek);

time[_01sek]=156; //~0, 01

Time_wire--;

//if (--time_view_zadanie==0) view_zadanie=0;

if (--time[_viewp]==0) time_flag & = ~BIT(_viewp);

if (! (pwire0 & out_1wire)) PORTDRIVE & = ~(DRIVE_TEN_1|DRIVE_TEN_2); //PORTDRIVE & = ~DRIVE_TEN_1; //

if (--t_1sek==0){

t_1sek=100;

if (--time_view_zadanie==0) view_zadanie=0;

Regim_count();

}

}

}

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.