Студопедия

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

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

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






Return;






}

if (state_wire==3)

{

state_wire=4;

DetectPresence();

Return;

}

if (state_wire==4)

{

state_wire=5;

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

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

Return;

}

if (state_wire==5)

{

state_wire=0;

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

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

setup.temper[0]=(temper[0]> > 4)|(temper[1]< < 4); //ds18b20

setup.temper[1]=(temper[2]> > 4)|(temper[3]< < 4); //ds18b20

if (setup.temper[0] < = setup.t_stat[0]) PORTDRIVE |= DRIVE_TEN_1;

Else

if (setup.temper[0] > = setup.t_stat[1]) PORTDRIVE & = ~DRIVE_TEN_1;

if ((setup.temper[0] - setup.temper[1]) > = setup.t_stat[2]) PORTDRIVE |= DRIVE_TEN_2;

Else

if ((setup.temper[0] - setup.temper[1]) < = setup.t_stat[3]) PORTDRIVE & = ~DRIVE_TEN_2;

Return;

}

}

//**************************************

void t_in_bcd(int8_t t, uint8_t pin_wire){

unsigned char znak=0;

if (! (pin_wire & out_1wire)){

lcd_buffer[0] =font[f_seg_g];

lcd_buffer[1] =font[f_seg_g];

lcd_buffer[2] =font[f_seg_g];

lcd_buffer[3] =font[f_seg_g];

}

Else

{

if (t< 0){

znak=1;

result_in_bcd(t * -1);

}

Else

Result_in_bcd(t);

if (bcd_num2){

lcd_buffer[1]=font[bcd_num2];

lcd_buffer[2]=font[bcd_num3];

}

Else

{

if (bcd_num3) {

lcd_buffer[2]=font[bcd_num3];

if (znak) lcd_buffer[1]=font[f_seg_g];

}

else if (znak) lcd_buffer[2]=font[f_seg_g];

}

lcd_buffer[3]=font[bcd_num4];

}

}

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

Void skan_key(void)

{

unsigned char pin=0;

key=0;

//PORTZN & = ~BITZN;

#ifdef katod

PORTZN |= BITZN;

#else

PORTZN & = ~BITZN;

#endif

DDRLED=BIT(7);

PORTLED=(unsigned char)~BIT(7);

_delay_us(40);

pin=PINLED|BIT(7);

if (pin! = 0xFF){

time_view_zadanie=7; //00; //0.05

if (++anti_dr==10)

{

key= ~pin;

}

if (anti_dr==btn_speed){

anti_dr=0;

if (++n_btn_sp==4) btn_speed=15;

}

}

else{

btn_speed=200;

n_btn_sp=0;

anti_dr=0;

}

DDRLED=0xFF;

}

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

Void display(void)

{

#ifdef katod

PORTZN |= BITZN;

if (znmesto==0) PORTZN & = ~ZN0; //PORTZN & = ~ZN0; //

Else

if (znmesto==1) PORTZN & = ~ZN1; //PORTZN & = ~ZN1; //

Else

if (znmesto==2) PORTZN & = ~ZN2;

Else

if (znmesto==3) PORTZN & = ~ZN3;

PORTLED=lcd_buffer[znmesto];

#else

PORTZN & = ~BITZN;

if (znmesto==0) PORTZN |= ZN0; //PORTZN & = ~ZN0; //

Else

if (znmesto==1) PORTZN |= ZN1; //PORTZN & = ~ZN1; //

Else

if (znmesto==2) PORTZN |= ZN2;

Else

if (znmesto==3) PORTZN |= ZN3;

PORTLED=~lcd_buffer[znmesto];

#endif

}

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

Void key_action(void)

{

int8_t *adr;

Int8_t limit_plus, limit_minus;

if (key){

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

//if (view_zadanie< 3){

// limit_plus=124;

// limit_minus=-54;

//}

//else{

limit_plus=100;

limit_minus=0;

//}

If (view_zadanie)

{

if (key & btn_plus){

if (adr[view_zadanie-1]< limit_plus) adr[view_zadanie-1]++; else setup.t_stat[view_zadanie-1]=limit_minus;

time[_viewp]=5;

}

if (key & btn_minus){

if (adr[view_zadanie-1] > limit_minus) adr[view_zadanie-1]--; else setup.t_stat[view_zadanie-1]=limit_plus;

time[_viewp]=5;

}

}

if (key & btn_set)

{

if (view_zadanie){

EEPROM_write(view_zadanie-1, adr[view_zadanie-1]);

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

for(limit_plus=limit_minus=0; limit_plus< sizeof(setup)-sizeof(setup.temper); limit_plus++, adr++)

limit_minus+=*adr;

EEPROM_write(EEP_crc, limit_minus);

eep_eer=0;

}

if (++view_zadanie> sizeof(setup)-sizeof(setup.temper)) view_zadanie=0;

time_flag |= BIT(_viewp);

time[_viewp]=100;

}

}

}

void regim_count(void){






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