Re: Вопросы по С/С++ (СИ)
Добавлено: Вс окт 29, 2017 20:31:08
Ну как же - ускоряется работа компилятора (на несколько μs)Аlex писал(а): Ну а какие плюсы, кроме минусов, от отсутствия "лишних" скобок - мне неведомо
Здесь можно немножко помяукать :)
https://radiokot.ru:443/forum/
Ну как же - ускоряется работа компилятора (на несколько μs)Аlex писал(а): Ну а какие плюсы, кроме минусов, от отсутствия "лишних" скобок - мне неведомо
Код: Выделить всё
typedef unsigned char byte;
unsigned char buffer[32];
bit blink,startindk,startindt,pirkor,indik,start_back,start_rele,start_mic,start_pirkor,
start_pirtua,start_gerkon_1,start_gerkon_2,ind_mic,start_ohtik,start_nochnik,start_tt,spark,
t_end,tic,start_timer,t_flag,lustra_on,rele_1,rele_2,rele_3,rele_4,ee,ff,
start_test,t_flag_2,t_end_2,sw_temp;
unsigned char sec,min,hour,day,week,month,year;
unsigned char w,a,b,cc,dreb_0,dreb_1,opros,delayt,ik,alb,alarm_b,alarm_a,bl,ab,ttt,
ind,tpirr,tpirrr,pirkorr,pir_kor,pir_tua,gerkon_1,gerkon_1_ncno,gerkon_2,gerkon_2_ncno,
mic,en_tic_kor,en_tic_tua,counter,test_del,sp,ind_mic_t,start_timer_2,start_tt_2,timer_2,tvvv_2,
en_al,en_al_2,cou,test_count,secur,mode,swit,nag,en_nochnik,time_ohr,aaaa,bbbb,cccc,dddd,eeee,
vb,vvv,shkaf,en_lustra,alarm_r,r,tr,port_1,port_2,port_3,port_4,
tvvv,en_tic_hour,enprom,buzzer,rem_mem,opros_akk,func_count,f_1,start_func,
tpirk,tpirt,delay_kor,timrem,phone,kor_from,kor_to,al,tal,al_0,day_al,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,hour_nag_start,min_nag_start,hour_nag_fin,min_nag_fin,
day_nag_start,month_nag_start,year_nag_start,day_nag_fin,month_nag_fin,year_nag_fin,
hour_rem_1,min_rem_1,day_rem_1,month_rem_1,year_rem_1,al_rem_1;
signed char back,countdown,cor,correct,timer_count,tt,tt_2,timer_count_2;
unsigned int temp,temper,mint,maxt,bc,dreb_2,dreb_3,rele,count_mic,count_pirkor,
count_pirtua,count_gerkon_1,ohtik,count_gerkon_2,vc,volt,volter,tnochnik,ttimer,t_count,
end_tt,ttimer_2,t_count_2,end_tt_2,copy_temp,tshkaf,qq,yy,rr,mem,eeppp,func;
eeprom unsigned char eep_day,eep_month,eep_year,eep_week;
eeprom unsigned char eep_pir_kor,eep_pir_tua,eep_gerkon_1,eep_gerkon_1_ncno,eep_mic,eep_gerkon_2,
eep_gerkon_2_ncno,eep_tpirk,eep_tpirt,eep_delay_kor,eep_timrem,eep_en_tic_kor,eep_en_tic_tua,
eep_kor_from,eep_en_nochnik,eep_en_lustra,eep_time_ohr,eep_shkaf,
eep_kor_to,eep_buzzer,eep_phone,eep_enprom,eep_nag,eep_en_tic_hour,eep_al,eep_day_1_al,eep_day_2_al,
eep_day_3_al,eep_day_4_al,eep_day_5_al,eep_day_6_al,eep_day_7_al,eep_min_al_1,eep_hour_al_1,
eep_min_al_2,eep_hour_al_2,eep_min_al_3,eep_hour_al_3,eep_min_al_4,eep_hour_al_4,eep_min_al_5,
eep_hour_al_5,eep_min_al_6,eep_hour_al_6,eep_min_al_7,eep_hour_al_7,eep_min_nag_start,
eep_hour_nag_start,eep_min_nag_fin,eep_hour_nag_fin,eep_day_nag_start,eep_month_nag_start,
eep_year_nag_start,eep_day_nag_fin,eep_month_nag_fin,eep_year_nag_fin,eep_hour_rem_1,eep_min_rem_1,
eep_day_rem_1,eep_month_rem_1,eep_year_rem_1,eep_al_rem_1;
eeprom signed char eep_cor;
eeprom unsigned int eep_count_mic,eep_count_pirkor,eep_count_pirtua,eep_count_gerkon_1,
eep_count_gerkon_2;
Код: Выделить всё
if(
day==eep_day&&week==eep_week&&month==eep_month&&year==eep_year&&
min_al_1==eep_min_al_1&&hour_al_1==eep_hour_al_1&&min_al_2==eep_min_al_2&&hour_al_2==eep_hour_al_2&&
min_al_3==eep_min_al_3&&hour_al_3==eep_hour_al_3&&min_al_4==eep_min_al_4&&hour_al_4==eep_hour_al_4&&
min_al_5==eep_min_al_5&&hour_al_5==eep_hour_al_5&&min_al_6==eep_min_al_6&&hour_al_6==eep_hour_al_6&&
min_al_7==eep_min_al_7&&hour_al_7==eep_hour_al_7&&al==eep_al&&day_1_al==eep_day_1_al&&
day_2_al==eep_day_2_al&&day_3_al==eep_day_3_al&&day_4_al==eep_day_4_al&&day_5_al==eep_day_5_al&&
day_6_al==eep_day_6_al&&day_7_al==eep_day_7_al&&cor==eep_cor&&gerkon_2==eep_gerkon_2&&
pir_tua==eep_pir_tua&&mic==eep_mic&&gerkon_1==eep_gerkon_1&&gerkon_1_ncno==eep_gerkon_1_ncno&&
gerkon_2_ncno==eep_gerkon_2_ncno&&pir_kor==eep_pir_kor&&tpirk==eep_tpirk&&tpirt==eep_tpirt&&
delay_kor==eep_delay_kor&&timrem==eep_timrem&&buzzer==eep_buzzer&&phone==eep_phone&&
kor_from==eep_kor_from&&kor_to==eep_kor_to&&en_tic_hour==eep_en_tic_hour&&
en_tic_kor==eep_en_tic_kor&&en_tic_tua==eep_en_tic_tua&&en_nochnik==eep_en_nochnik&&
en_lustra==eep_en_lustra&&time_ohr==eep_time_ohr&&shkaf==eep_shkaf&&enprom==eep_enprom&&
nag==eep_nag&&hour_nag_start==eep_hour_nag_start&&min_nag_start==eep_min_nag_start&&
hour_nag_fin==eep_hour_nag_fin&&min_nag_fin==eep_min_nag_fin&&
day_nag_start==eep_day_nag_start&&month_nag_start==eep_month_nag_start&&
year_nag_start==eep_year_nag_start&&day_nag_fin==eep_day_nag_fin&&
month_nag_fin==eep_month_nag_fin&&year_nag_fin==eep_year_nag_fin&&hour_rem_1==eep_hour_rem_1&&
min_rem_1==eep_min_rem_1&&day_rem_1==eep_day_rem_1&&month_rem_1==eep_month_rem_1&&
year_rem_1==eep_year_rem_1&&al_rem_1==eep_al_rem_1)
{
Кучу переменных - никак. Объединяйте все переменные, логически связанные друг с другом, в структуры.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++;
...