ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
622517 Топик полностью
Vit (02.10.2015 09:24 - 09:30, просмотров: 166) ответил symbions на Вопрос по С для АВРок (и прочих малых МК)
По указателю структуру передавать не годится?  Можно вместо структуры массив использовать с именованными индексами, ну или запихнуть его в структуру что-то типа (ну и поправлю int, который подметили коллеги) enum DS3231{ SECONDS, MINUTES, HOURS, DS3231_QTY }; typedef struct TIME_DS3231{ char t[DS3231_QTY]; }TIME_DS3231; unsigned long T2i (TIME_DS3231 * TimeOrAlarm) { unsigned long i; i = *(TimeOrAlarm->t + SECONDS) && 0x0f; i+=(*(TimeOrAlarm->t + SECONDS)>>4)*10; i+=(*(TimeOrAlarm->t + MINUTES) && 0x0f)*60; i+=(*(TimeOrAlarm->t + MINUTES)>>4)*600; i+=(*(TimeOrAlarm->t + HOURS) && 0x0f)*600*60; i+=(*(TimeOrAlarm->t + HOURS)>>4)*600*60*10; return(i); } void i2T (TIME_DS3231 * TimeOrAlarm, unsigned long iTimeOrAlarm ) { *(TimeOrAlarm->t + SECONDS) = iTimeOrAlarm % 600;//для примера просто приведено //чего-то ещё *(TimeOrAlarm->t + HOURS) = iTimeOrAlarm>>8;//для примера просто приведено } TIME_DS3231 TimeIndic; TIME_DS3231 TimeAlarm; //вызов i2T(&TimeIndic, iTimeIndic); i2T(&TimeAlarm, iTimeIndic);