Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы по С/С++ (СИ)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 21:42:41

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7588 ]     ... , , , 254, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 19:04:44 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Чт июн 24, 2010 20:58:59
Сообщений: 375
Рейтинг сообщения: 0
Продолжаем разбирать код, впрочем у меня оно уже полгода работает,и через полгода вернувшись к тексту всё понятно, дело привычки. Впрочем, все рекомендации принимаем к сведению.Уменьшив код,можно еще накидать дополнительных функций.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 19:14:46 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Если работает - не трогайте. Не нужно ничего переделывать.
Все рекомендации и советы будете принимать во внимание при следующем проекте.

PS: Опыт приходит со временем.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 19:35:44 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Чт июн 24, 2010 20:58:59
Сообщений: 375
Рейтинг сообщения: 0
Да почему же, действительно, в секундном прерывании я лишнего написал,поправил,проверил,если буду снимать устройство,или для будущего проекта,то уже с изменениями, исполнение сего кода у меня уменьшилось с 2.5мкс до 1мкс.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 20:20:37 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
вот прокомментируйте сей код, насколько он кошмарный/некошмарный


Вы сами легко прокомментируете данный код годика через два, если Вам захочется что-нибудь изменить/добавить. :-)

само устройство на нем работает как я и задумывал

«Не верю!» (с) Станиславский

Вы просто плохо тестировали устройство :-)
Спойлер
Код:
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++;
}


Странно, eep_month и eep_year присваивается ДО корректировки month и year (т.е. возможно неправильными значениями).


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 20:44:39 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
Еще вопрос о правилах "хорошего тона". Можно писАть
Код:
 if (delay != 0) delay --;
а можно
Код:
 if (delay) delay --;
Насколько эстетичны такие сокращения с точки зрения "профессиональных любителей" ? Ну типа, фыркаете ли Вы, видя такое в чужом коде, или нормально относитесь ?


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 20:50:09 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Чт июн 24, 2010 20:58:59
Сообщений: 375
Рейтинг сообщения: 0
Про високосные думал,но пока так оставил работать, насчет корректировки месяц и год,возможно,недочет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 20:50:23 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
зависит от. Общее правило - если нас интересует числовое значение (как в данном примере), то и пишем явное сравнение с числом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 20:59:25 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Пока_без_кота писал(а):
Ну типа, фыркаете ли Вы, видя такое в чужом коде, или нормально относитесь ?
дело не в том, фыркают ли другие... дело в том, видите ли вы полезный смысл в написанном или нет. у каждого своё понимание перфекционизма, но любой перфекционизм ради перфекционизма плох.

если вы НИКОГДА не будете проверять В ЭТОМ МЕСТЕ delay на равенство чему-то отличному от нуля, смысла писать != 0 нет. но если логика программы или избранного вами алгоритма такова, что ВОЗМОЖНЫ варианты, когда delay может сравниваться с чем-то еще - то стоит задуматься... а не правильнее ли написать delay != DELAY_LIMIT, определив DELAY_LIMIT равным 0, но подразумевая, что там может быть и нечто иное?

а вот -- или ++ я лично никогда не отделяю от операнда пробелом :)

Добавлено after 5 minutes 21 second:
Ну хорошо, наверняка здесь есть хорошо владеющие СИ, вот прокомментируйте сей код, насколько он кошмарный/некошмарный, само устройство на нем работает как я и задумывал, но может как-то можно код сократить/улучшить без потери функциональности? Если кому понадобится могу скинуть весь проект+схема в протеусе. Кто что скажет?

:facepalm: :facepalm: :facepalm:

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 21:23:46 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Чёрт, да этот код от ra9ust в 100 раз круче регулярных выражений в плане write-only-code.

Добавлено after 11 minutes 25 seconds:
Ничего непонятно:
Спойлер
Код:
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 ((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++;
}
А как бы такую логику делал я:
Спойлер
Код:
// Функция определяет число дней в месяце, уже с учётом високосных годов
static uint8_t DaysInMonth(void)
{
   uint8_t ret = month;
   if (ret == 2) {
      ret = year & 0x03;
      ret = (ret ? 29 : 28);
   } else {
      if (ret > 7)
         ret++;
      ret |= 30;
   }
   return ret;
}
// Дальше логика автора:
if (day > DaysInMonth()) {
    day = 1;
    month++;
}
if (month >= 12) {
    year++
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн окт 30, 2017 23:18:28 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
А как бы такую логику делал я:
Спойлер
Код:
// Функция определяет число дней в месяце, уже с учётом високосных годов
static uint8_t DaysInMonth(void)
{
   uint8_t ret = month;
   if (ret == 2) {
      ret = year & 0x03;
      ret = (ret ? 29 : 28);
   } else {
      if (ret > 7)
         ret++;
      ret |= 30;
   }
   return ret;
}
}


1)
Код:
ret = (ret ? 29 : 28);
29<==>28 помянять бы местами
2) 2100 (2200) году будет неверно работать, но это уже мелочи.
3) чтобы понять, надо напрячься :)) комментарий бы добавить к строке " ret |= 30;"
завести массив кол-ва дней в месяцах (во флеш памяти) и индексироваться - просто, понятно с первого взгляда, и займен не намного больше места


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 00:06:08 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
завести массив кол-ва дней в месяцах (во флеш памяти) и индексироваться - просто, понятно с первого взгляда, и займен не намного больше места

Если оптимизировать вариант WiseLorda, например, так:
Код:
uint8_t DaysInMonth()
{
   if (month == 2)  return 28 + !(year & 3);
   return month + (month >> 3) | 30;
}

то разница с функцией на основе таблицы получается 24 байта для STM32F4.
А хотя нет, похоже это из-за того, что я функцию в цикле вызывал, без него 12 байт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 01:10:41 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
это уже компактность ради компактности, а не читаемости


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 07:12:11 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
viiv писал(а):
29<==>28 помянять бы местами
Мда... и ошибка уже старая...

Как говорится, срочно в номер: проект раз, проект два, проект три


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 08:18:13 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Если оптимизировать вариант WiseLorda, например, так:
Код:
uint8_t DaysInMonth()
{
   if (month == 2)  return 28 + !(year & 3);
   return month + (month >> 3) | 30;
}

Тогда уж можно вообще одной строкой написать :
Код:
return (month == 2) ? (28 + !(year & 3)) : (month + (month >> 3) | 30);
:))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 09:14:12 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
Мда... и ошибка уже старая...


Выносить определение високосности в отдельную функцию (по желанию inline) и всегда (во всех проектах) использовать ее
Спойлер
Код:
/*
 * високосный ли год
 *   year (c 2000-го года): 0=2000, 1=2001, ...
 *
 * c 2000 по 2255 годы: 2100 и 2200 не являются високосными
 */
__INLINE__ bool_t is_leap_year (uint8_t year)
{
        if (year & 0x03)
                return 0;

#ifdef LEAP_YEAR_EXEPTIONS  /* съэкономим несколько байт, если не проверяем исключения (годы: 2100 и 2200)*/
        if (year == 100 || year == 200)
                return 0;
#endif

        return 1;
}


Тогда Ваш код еще понятней станет (не очивидные с первого взляда места я бы откомментировал):
Спойлер
Код:
uint8_t DaysInMonth (uint8_t month, uint8_t year)
{
   if (month == 2)
        return is_leap_year (year) ? 29 : 28;

   if (month > 7)            /* длинные и короткие месяцы чередуются, исключение: */
      month++;               /*  после длинного июля идет длинный август  */

   return month |= 30;       /* используется только младший бит month */
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 12:19:30 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Чт июн 24, 2010 20:58:59
Сообщений: 375
Рейтинг сообщения: 0
Ну вот, вчерашнее сравнение настроек переменных с еепром ужалось вот до такой функции.


Вложения:
454488.txt [414 байт]
Скачиваний: 185
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 12:27:21 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А зачем фигурные скобки ужимать в кучу ? Смотрится отвратительно.

Добавлено after 3 minutes 48 seconds:
Что уже не так написали :
Код:
void contr_eep (void)
{   
for(comp=0;comp<66;comp++){ if(mass[comp]!=eep_mass[comp])result=0;}  if(result==1){delayt=0;while(delayt<200){lcd_gotoxy(0,0);lcd_putsf("  TEST EEPROM         OK!       ");}w=0;}else{lcd_gotoxy(0,0);lcd_putsf("  TEST EEPROM       FAILURE!    ");if(eeppp&0b0011111110010000){PORTB.5=0;}else{PORTB.5=1;}if(PINC.3==0){PORTB.5=0;dreb_0=6;w=0;}} //пищит каждые примерно 2 минуты
}
?
Всё в одной строке :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 12:50:26 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Чт июн 24, 2010 20:58:59
Сообщений: 375
Рейтинг сообщения: 0
Да я уже как-то привык про скобки. Про что уже не так написал , что-то не понял.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 14:36:07 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
ra9ust, структурируйте код.

Хотим сохранять конфигурацию в EEPROM. Отлично. Зачем? Чтобы при сбросе/включении начать работать с сохраненной конфигурацией.
1) Пользователю не интересно видеть сообщение "TEST EEPROM OK! " Зачем оно? Если при включении самотестирование проходит - молча начинаем работать. Представьте, включаете Вы телевизор, а там:
Код:
Тestng flash memory...Ok
Testing SRAM...Ok
Testing EEPROM...Ok
Testing power supply voltages...Ok
....

2) У вас есть конфигурация устройства. Так? Не вижу причин не зафиксировать это средствами языка программирования (объявить соотвктствующую структуру):
Код:
typedef struct _device_config_t {
   // здесь все параметры конфигурации
} device_config_t;


3) mass[] - конфигурация в SRAM eep_mass[] - конфигурация в EEPROM. Так?
Непонятно, зачем их сравнивать. mass откуда берется? Читается из EEPROM?
Т.е. Вы прочитали EEPROM, работаете-работаете, а затем обнаруживаете,
что EEPROM (или конфигурация в SRAM) странным образом изменилась.

При старте устройства желательно бы проверить целостность конфигурации в EEPROM (например, питание устройства может быть отключено в момент записи конфигурации), выбирайте:
a) в EEPROM хранить контрольную сумму
б) в EEPROM держать несколько копий
в) комбинация двух методов
г) что-то еще

3) Раз есть конфигурация, то нужны:
a) функция сброса параметров конфигурации в значения по умолчанию. Т.е. если обнаружено, что в EEPROM лежит каая-то фигня, то надо привести
конфигурацию в заведомо правильное состояние (значения по умолчанию, заводские установки - называйте как хотите)
Код:
 void device_default_config (device_config_t* c) {
   // устанавливаем значения по умолчанию
}

б) функцию загрузки конфигурационных параметров:
Спойлер
Код:
/* например, есть функции чтение байта из EEPROM по указанному адресу */
uint8_t eeprom_read_byte (unsigned addr);
/* мы хотим контолировать целестность сохраненной конфигурации посредсвом контрольной суммы */
uint16_t cksum_update (uint16_t cksum, uint8_t);


/* возвращает 0, если в EEPROM лежит плохая конфигурация, и значения конфигурационных
   параметров установлены в начальное состояние */
bool_t device_load_config (device_config_t* c) {
    uint8_t data;
    uint16_t cksum = CKSUM_INIT_VALUE; /* начальное значение контрольной суммы */
    uint16 addr = DEVICE_CONFIG_ADDR; /* начиная с DEVICE_CONFIG_ADDR лежит конфигурация устройства */
    uint8_t *p = (uint8_t *) (c);
    uint8_t *limit = p + sizeof (*c);

    while (p < limit) {
         data = eeprom_read_byte (addr++);
         cksum = cksum_update (cksum, data);
         *p++ = data;
    }
    /* читаем дополнительно байты контрольной суммы */
    cksum = cksum_update (cksum, eeprom_read_byte (addr++));
    cksum = cksum_update (cksum, eeprom_read_byte (addr));
    if (cksum != CKSUM_GOOD) {    /* контрольная сумма плохая */
        device_default_config (c);         /* сбрасываем конфигурацию */
        return 0;
    }
   
    return 1;
};


функция device_load_config () будет нормально работать во ВСЕХ ваших проектах,
достаточно чтобы была определена device_config_t, функции чтения EEPROM, функции контрольной суммы.

в) функцию сохранения конфигурационных параметров.
г) ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 15:13:49 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Чт июн 24, 2010 20:58:59
Сообщений: 375
Рейтинг сообщения: 0
Ну так это всё у меня и сделано, естественно так как мне удобно.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7588 ]     ... , , , 254, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y