ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
28 апреля
622516 Топик полностью
Nikolay801_ (02.10.2015 09:21, просмотров: 165) ответил symbions на Вопрос по С для АВРок (и прочих малых МК)
вообще я бы сделал иначе. Я бы добавил в структуру функции конвертации, вот так  typedef __packed struct TIME_DS3231_tag{ char sec; char min; char chas; int toInt(void){ int i; i = TimeOrAlarm.sec && 0x0f; i += (TimeOrAlarm.sec>>4)*10; i += (TimeOrAlarm.min && 0x0f)*60; i += (TimeOrAlarm.min>>4)*600; i += (TimeOrAlarm.chas && 0x0f)*600*60; i += (TimeOrAlarm.chas>>4)*600*60*10; return (i); }; void fromInt(int val){ this->sec = val % 600;//для примера просто приведено //чего-то ещё this->chas = val >> 8;//для примера просто приведено }; //бонус int cmp(struct TIME_DS3231_tag * val){ if (this->chas > val->chas) return 1; else if (this->chas < val->chas) return -1; else if (this->min > val->min) return 1; else if (this->min < val->min) return -1; else if (this->sec > val->sec) return 1; else if (this->sec < val->sec) return -1; else return 0; } } TIME_DS3231; TIME_DS3231 TimeIndic,TimeAlarm; int iTimeIndic,iTimeAlarm; //вызов iTimeIndic = TimeIndic.toInt(); TimeAlarm.fromInt(iTimeIndic + 5); if (TimeAlarm.cmp(&TimeIndic) == 0){ //время пришло. }
Будь ты проклят, Перри-Утконос!