Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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){
|