Например TDA7294

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





Текущее время: Чт апр 18, 2024 08:32:44

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7581 ]     ... , , , 256, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 18:00:18 
Грызет канифоль

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


Где же так?
Код:
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 ìèíóòû
}


66 размер массива? Вот Вы решите добавить еще параметр (или убрать). Придется весь код просматривать и править - не осталось ли где 66. Причем, например, при выходе за границу массива, Вы можете не увидеть сразу проблему. Сейчас надо посмотреть объявления mass и eep_mass, чтобы убедиться, что нет ошибки.
comp почему не локальная? Чтобы убедиться, что ошибки нет - надо просмотреть весь текст.
result Также глобальная. Чтобы убедиться, что ошибки нет - надо просмотреть весь текст.
delayt Также глобальная. Чтобы убедиться, что ошибки нет - надо просмотреть весь текст. А ошибка скорей всего есть, так как данная переменная много где используется (судя по текстам, которые Вы давали ранее), в том числе и в обработчике прерываний.
w, опять же глобальная. Назначение непонятное, к тому же поиск затруднен (переменная очень короткая). Много где используется, в том числе и в обработчике прерываний. Скорей всего есть ошибка (и даже не одна).
eeppp&0b0011111110010000 - назначение eeppp и константы непонятно, модифируется в обработчике, используется вне обработчика: как volatile не объявлена, атомарность доступа "побоку". Лень смотреть, но скорей всего есть ошибка.
PORTB.5 PINC.3 непонятно как используются, но используется много где. Если PORTB.5 - это включение alarm-а, то почему не сделать функцию
Код:
void set_alarm (bool_t on)
{
    PORTB.5 = on ? 1 : 0;
}

Так ведь понятнее.

Не много ли для 8-ми строк кода? После внесения правок надо бы проверить все заново.

А мне главное чтобы работало

В том то и дело, что работает "криво". Я за пару минут нашел ошибку, с которой Вы даже согласились. Поверьте ошибок у Вас куча. Не удивлюсь, если иногда устройство "глючит" и подвисает. Структурированный и понятный код - это не самоцель, это способ значительно уменьшить количество ошибок в ПО и время для исправления ошибок, расширения функциональности.

Но, если Вам удобнее, то Ваше дело - пишите, как хотите.


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

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


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

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

ra9ust писал(а):
Почему никаких дисплеев и пищалок?
Потом, что функция, выполняющая определённые действия, должна только их и выполнять. Ничего лишнего в ней быть не должно.
Если хочется что-то вывести по результату этой функции, то выводите после её вызова.

PS: Ладно, Вы вместо критики, пытаетесь отбрыкиваться и доказать, что Ваш стиль не хуже других. О чём дальше можно вести беседу ?


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт окт 31, 2017 18:12:42 
Друг Кота

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

читаемость, логическая связность кода.
и в чем минус того что она глобальная?

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

логическое разделение и структурирование кода. Функция проверки чего-то должна проверять это что-то; реагировать на результат проверки - дело того, кто функцию вызвал.
Напишите как по другому...

Код:
lcd_gotoxy(0,0);
lcd_putsf("  TEST EEPROM         OK!       ");
delayt=0;
while(delayt<200); // do nothing, wait for delayt increment

и да, общая практика для задержек - в прерывании таймера уменьшать счетчик, а не увеличивать. Т.е.
Код:
delayt=200;
while(delayt>0); // do nothing, wait for delayt decrement


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

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

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
Не понятно что вы подразумеваете под ошибкой? Если сбой в работе или нарушение алгоритма, то всё работает без единого сбоя,без глюков и практически не выключаясь уже полгода,всё как и задумывал работает, ну а если под ошибкой подразумевается просто
загроможденность кода лишними действиями,то возможно соглашусь, потому и спрашивал про упрощение.


Я же Вам показал ошибку. И Вы даже согласились. Или мне еще проанализировать и сказать, в каких случаях Вы ее увидите и что увидите?
И показал возможные проблемы, где еще могут быть проблемы. А зачем? Вас же все устраивает.


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

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

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

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

Добавлено after 2 minutes 19 seconds:
Не понятно что вы подразумеваете под ошибкой? Если сбой в работе или нарушение алгоритма, то всё работает без единого сбоя,без глюков и практически не выключаясь уже полгода,всё как и задумывал работает, ну а если под ошибкой подразумевается просто
загроможденность кода лишними действиями,то возможно соглашусь, потому и спрашивал про упрощение.


Я же Вам показал ошибку. И Вы даже согласились. Или мне еще проанализировать и сказать, в каких случаях Вы ее увидите и что увидите?
И показал возможные проблемы, где еще могут быть проблемы. А зачем? Вас же все устраивает.

Я считаю ошибкой то что в какой-то момент происходит сбой или зависание или еще что, никаких сбоев не было, ни изначально еще когда в протеусе проверял, ни в процессе работы уже в железе, режимы все работают уж какие еще нужны ситуации я не знаю, не так уж там и много то функций.

Добавлено after 2 minutes 8 seconds:
Уменьшение счетчика учтем, пожалуй это наглядней чем увеличивать.


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

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
Вы тролите?

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

Поставте 23:59:30 31 декабря. 2017

После завершения минуты у Вас в EEPROM будет (32 декабря 2017 года, вместо 1 января 2018):
eep_day=32
eep_month=12
eep_year=2017

Это не ошибка? Или Вы так задумывали? Ну тады как-то работает и ладно.


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

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

еще нагляднее - выделить в функцию или макрос
Код:
void delay_ms(uint16_t mseconds){ // 10ms precision
    delayt=mseconds/10;
    while(delayt>0); // do nothing, wait for delayt decrement
}

Код:
#define DELAY_MS(mseconds) ({ \
    delayt=(mseconds)/10; \
    while(delayt>0); \
})


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

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

Начинает и до вас доходить? Я ж сразу сказал - гиблое это дело, классифицировать дерьмо...

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

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


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

Зарегистрирован: Чт июн 24, 2010 20:58:59
Сообщений: 375
Рейтинг сообщения: 0
Вы тролите?

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

Поставте 23:59:30 31 декабря. 2017

После завершения минуты у Вас в EEPROM будет (32 декабря 2017 года, вместо 1 января 2018):
eep_day=32
eep_month=12
eep_year=2017

Это не ошибка? Или Вы так задумывали? Ну тады как-то работает и ладно.


Да есть такое дело, но я и не планировал так изначально,конечно через сутки епром обновится, но поправить можно, учтем.
Да это даже и не сбой, а недочет, и вот тут то мне бы и помогла та функция проверки еепром в 20.00, и она бы вылезла, что было бы сигналом для отладки, так что смысл в ней есть.


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

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


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

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Сб сен 19, 2009 07:02:19
Сообщений: 378
Рейтинг сообщения: 0
...
Да это даже и не сбой, а недочет...

Ага, "It's not a bug, it's a feature!" :D Это не будильник-ли? 32 декабря станет видно. Или только после 20.00? :D


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

Карма: -4
Рейтинг сообщений: -2
Зарегистрирован: Пн фев 08, 2016 10:57:14
Сообщений: 128
Рейтинг сообщения: 3
4 страницы. Вот как говнокод множит этропию. "Автору" надо не советы сотянми давать, а ремня и книжки читать.


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

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


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

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ra9ust писал(а):
Как всё запущено здесь...
вы про это: download/file.php?id=295383 ? таки да, запущено - просто ужас
ra9ust писал(а):
А таким "комментаторам" потом как бы падать высоко не пришлось
вам-то точно не придется - ниже некуда просто

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

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


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

Карма: -4
Рейтинг сообщений: -2
Зарегистрирован: Пн фев 08, 2016 10:57:14
Сообщений: 128
Рейтинг сообщения: 0
Как всё запущено здесь...
А таким "комментаторам" потом как бы падать высоко не пришлось.


*НАДМЕННО* Простите, конечно, наверное вам так понятнее будет: "4 страницы. Вот как говнокод множит этропию. "Автору" надо не советы сотянми давать, а ремня и книжки читать. )))))))"


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

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


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

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

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

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


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

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


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

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Я такого не говорил.

значит, мне показалось. как и остальным.

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

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


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

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


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

Сейчас этот форум просматривают: nvv13 и гости: 11


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

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


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