Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 12.11.2017, 08:01  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от supercelt Посмотреть сообщение
Добавил статик.
Есть еще вариант, volatile.
Реклама:
IOPA4 вне форума  
Непрочитано 12.11.2017, 08:34  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от IOPA4 Посмотреть сообщение
Есть еще вариант, volatile.
Volatile если не ошибаюсь применяется когда нужно чтоб компилятор не делал оптимизацию над переменной, не изменяя сам. Для прерываний применимо и т д.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 12.11.2017, 15:07  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от jogick Посмотреть сообщение
В таких случаях, как у ТС, лично я внутри функции объявляю static массив и возвращаю из функции указатель на него. Во первых, это позволяет поместить такую функцию в библиотеку и присоединять к разным проектам, без привязки к именам глобальных переменных в других проектах. Во вторых, если этот массив нужен в других функциях он просто передаётся туда указателем.
Проще подружиться с указателями, чем использовать глобальные переменные.
Так вот.... о чём я и писал... Если я делаю статик внутри ф-ии, а потом возвращаю указатель, но не работает вывод на дисплей. Ну у меня там в коде написано все, в первом посте
supercelt вне форума  
Непрочитано 12.11.2017, 15:08  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от CERGEI1982 Посмотреть сообщение
Volatile если не ошибаюсь применяется когда нужно чтоб компилятор не делал оптимизацию над переменной, не изменяя сам. Для прерываний применимо и т д.
Да верно volatile исключает оптимизацию. Применяется для переменных, которые изменяются в прерываниях и тд
supercelt вне форума  
Непрочитано 12.11.2017, 15:11  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от mike-y-k Посмотреть сообщение
Использование глобальных переменных экономит на коде и времени выполнения.
почему? разве глобальные? Почему тогда многие советуют по возможности не использовать глобал?
supercelt вне форума  
Непрочитано 12.11.2017, 15:44  
Serg3301
Вид на жительство
 
Регистрация: 03.10.2011
Сообщений: 485
Сказал спасибо: 35
Сказали Спасибо 234 раз(а) в 138 сообщении(ях)
Serg3301 на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от jogick Посмотреть сообщение
В таких случаях, как у ТС, лично я внутри функции объявляю static массив и возвращаю из функции указатель на него. Во первых, это позволяет поместить такую функцию в библиотеку и присоединять к разным проектам, без привязки к именам глобальных переменных в других проектах.
А вот тут таится засада - повторный вызвов этой функции "убьёт" результат предыдущего вызова. Об этом надо будет всегда помнить самостоятельно, компилятор в этом не будет помощником.
Это-же касается и использования глобальных переменных.
Serg3301 вне форума  
Непрочитано 12.11.2017, 15:52  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,770 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от supercelt Посмотреть сообщение
Почему тогда многие советуют
Такая же крайность, как и объявить ВСЕ переменные глобальными.
Сообщение от Serg3301 Посмотреть сообщение
А вот тут таится засада - повторный вызвов этой функции "убьёт" результат предыдущего вызова
"Статик" на то и "статик", чтобы продолжать с покинутого места. Это не простые локальные, тут самому понимать надо, что делаешь.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 12.11.2017, 16:09  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Сообщение от Serg3301 Посмотреть сообщение
А вот тут таится засада - повторный вызвов этой функции "убьёт" результат предыдущего вызова. Об этом надо будет всегда помнить самостоятельно, компилятор в этом не будет помощником.
Это-же касается и использования глобальных переменных.
Это учтено. Мне и не нужен повторный вызов. Всё сработает и сделается за 1 вызов
supercelt вне форума  
Непрочитано 13.11.2017, 02:22  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

supercelt, так может таки на бумажке расписать все (проект, постановка задачи, описание переменных,…).
Для программки в три экрана можно и с листа, а вот когда переменных и структур на те три экрана набежит, то лучше таки все спроектировать и описать изначально. Потом и при отладке, и доработке сильно поможет.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 13.11.2017, 13:02  
SashaBu
Прохожий
 
Регистрация: 12.08.2005
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
SashaBu на пути к лучшему
По умолчанию Re: Функция вывода на lcd и глобальные переменные

Почему-то никто не замечает, что вот это:
static char value[] = "";
хоть static, хоть без, резервирует в ОЗУ только один байт, т.е. создаёт массив из одного 0, или - в зависимости от реализации - из пары байтов 0x0d, 0x0a. Потом автор туда записывает неопределённое количество байтов - и вылезает за границы массива с непредсказуемыми последствиями: могут попортиться какие угодно переменные, которые размещены вслед за этим массивом. Надо же задавать размер массива!
SashaBu вне форума  
Сказали "Спасибо" SashaBu
H4LF (14.11.2017)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27
PIC16F876a+Nokia 5110 LCD+PICKit2 AndGrig PIC 31 02.11.2016 09:18
ЖКИ и CodeVision: 8-ми битный режим vikpol Микроконтроллеры, АЦП, память и т.д 33 09.03.2009 21:55
На чём написано ??? Koka Proteus, KiCAD и другие ECAD 18 08.10.2006 15:50
Не могу разобраться с LCD init_sub Информация по радиокомпонентам 6 02.04.2004 04:40


Часовой пояс GMT +4, время: 05:32.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot