Есть lpc2478 который управляет релюшками в зависимости от входных данных. В структуре есть три поля(uint32_t закомментированы) и прерывание где уменьшается значение полей. Так вот если эти три поля находятся внутри структуры, то их значение никогда не будет равно 0, а если я их вынесу за структуру, т.е. просто укажу глобальными переменными, то они в нужное время станут равны 0. Никак не пойму в чем разница? Есть ли у структуры какой то предел?
- Код: Выделить всё • Развернуть
typedef struct
{
uint16_t work_led;
uint16_t can_send_ts;
uint16_t lcd_refresh;
uint16_t up_button;
uint16_t down_button;
uint16_t ok_button;
uint16_t shift_send;
uint16_t msp_refresh_delay;
uint16_t seconds;
uint16_t firstRunDelay;
uint16_t buttons_check;
uint16_t startupStepDelay;
uint8_t low_key_0v24[40];
uint8_t low_key_0v110[8];
uint8_t condensate_timeout;
uint16_t watersupply_drainage_delay;
uint16_t w_and_s_drainage_delay;
uint16_t testStepDelay;
uint16_t wc_light_timeout;
// uint32_t washbasin1_water_timeout;
// uint32_t washbasin2_water_timeout;
// uint32_t shower_water_timeout;
uint16_t wc1_buzzer;
uint16_t wc2_buzzer;
uint16_t muuv_connection;
uint16_t lock_request_stop;
uint16_t relay_666_timeout;
} TTIMERS;
// В прерывании
if (n_washbasin1_water_timeout) n_washbasin1_water_timeout--;
if (n_washbasin2_water_timeout) n_washbasin2_water_timeout--;
if (n_shower_water_timeout) n_shower_water_timeout--;
//