Добавлено after 2 minutes 10 seconds:
Согласен, в куче. Но я свободно ориентируюсь , возможно потому что сам составлял. По той же причине мне непонятен любой чужой код.Ну так как насчет сравнения переменных в епром?
Кучу переменных - никак. Объединяйте все переменные, логически связанные друг с другом, в структуры.ra9ust писал(а):куча сравнений переменных с их значениями в еепром, как записать это компактней?
Код: Выделить всё
...
if(cc>=254)cc=14;
...
if(w==72)w=60;
if(w==93)w=90;
...
if(eeppp&0b0111111110010000)
...
lcd_putchar(0x42)
...Код: Выделить всё
day_1_al, day_2_al,day_3_al,day_4_al,day_5_al,day_6_al,day_7_al,hour_al,min_al,hour_al_1,
hour_al_2,hour_al_3,hour_al_4,hour_al_5,hour_al_6,hour_al_7,min_al_1,min_al_2,
min_al_3,min_al_4,min_al_5,min_al_6,min_al_7Код: Выделить всё
typedef struct {
unsigned char day,
unsigned char hour,
unsigned char minute
} alarm_time_type;
alarm_time_type alarms[7];Код: Выделить всё
...
if(sec>=60){min++;sec=0;}
if(min>=60){hour++;min=0;tic=1;}
if(hour==23&&min==59&&sec==50){if(cor>0)sec+=cor;}
if(hour==23&&min==59&&sec==59&&cc>11){if(cor<0)sec-=(128-(cor&0b01111111));cc=0;}
if(hour>=24){day++;hour=0;week++;mint=0;maxt=0;eep_day=day;eep_month=month;eep_week=week;eep_year=year;}
...
Код: Выделить всё
if(sec>=60)
{
min++;
sec=0;
if(min>=60)
{
hour++;
min=0;
tic=1;
if(hour >= 24)
{
day ++;
hour = 0;
week ++;
mint = 0;
maxt = 0;
eep_day = day;
eep_month = month;
eep_week = week;
eep_year = year;
}
}
}
if( hour == 23 && min == 59 )
{
if( sec == 50 )
if( cor > 0 )
sec+=cor;
if( sec == 59 && cc > 11 )
{
if(cor<0)
sec-=(128-(cor&0b01111111));
cc=0;
}
}Код: Выделить всё
...
tal++;
tr++;
a++;
b++;
tpirr++;
tpirrr++;
...
Код: Выделить всё
if((day==32&&month==1)||(day==29&&month==2)||(day==32&&month==3)||(day==31&&month==4)||
(day==32&&month==5)||(day==31&&month==6)||(day==32&&month==7)||(day==32&&month==8)||
(day==31&&month==9)||(day==32&&month==10)||(day==31&&month==11)){month++;day=1;}
if(day==32&&month==12){month=1;day=1;year++;} Код: Выделить всё
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
cc++;
if(cc>=254)cc=14;
sec++;
if(sec>=60){min++;sec=0;}
if(min>=60){hour++;min=0;tic=1;}
if(hour==23&&min==59&&sec==50){if(cor>0)sec+=cor;}
if(hour==23&&min==59&&sec==59&&cc>11){if(cor<0)sec-=(128-(cor&0b01111111));cc=0;}
if(hour>=24){day++;hour=0;week++;mint=0;maxt=0;
[b]/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */[/b]
eep_day=day;eep_month=month;eep_week=week;eep_year=year;}
if(week>=8)week=1;
if((day==32&&month==1)||(day==29&&month==2)||(day==32&&month==3)||(day==31&&month==4)||
(day==32&&month==5)||(day==31&&month==6)||(day==32&&month==7)||(day==32&&month==8)||
(day==31&&month==9)||(day==32&&month==10)||(day==31&&month==11)){month++;day=1;}
if(day==32&&month==12){month=1;day=1;year++;}
if(PINC.5==0&&w==1)secur++;
if(pirkor==1)pirkorr++;
if(start_back==1)back--;
if(start_rele==1)rele++;
countdown=((time_ohr-1)-rele);
if(start_mic==1)count_mic++;
if(start_pirkor==1)count_pirkor++;
if(start_gerkon_1==1)count_gerkon_1++;
if(start_gerkon_2==1)count_gerkon_2++;
if(start_pirtua==1)count_pirtua++;
if(ind_mic==1)cou++;
if(start_ohtik==1)ohtik++;
if(start_nochnik==1)tnochnik++;
if(start_tt==1)tt--;
if(tt<0){timer_count--;tt=59;}
if(start_tt_2==1)tt_2--;
if(tt_2<0){timer_count_2--;tt_2=59;}
tal++;
tr++;
a++;
b++;
tpirr++;
tpirrr++;
}
Код: Выделить всё
if (delay != 0) delay --;Код: Выделить всё
if (delay) delay --;дело не в том, фыркают ли другие... дело в том, видите ли вы полезный смысл в написанном или нет. у каждого своё понимание перфекционизма, но любой перфекционизм ради перфекционизма плох.Пока_без_кота писал(а):Ну типа, фыркаете ли Вы, видя такое в чужом коде, или нормально относитесь ?