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

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

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

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

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

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


 
Опции темы
Непрочитано 06.10.2016, 22:56  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Сообщение от j-Roger Посмотреть сообщение
положения графитовых стержней?

Не, не ходи.
Не твоё это....

...точно не твоё....
Реклама:
omercury вне форума  
Непрочитано 06.10.2016, 23:23  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

omercury, огромное мерси. Оледы пока лежат.
Под них надо платы травить, а некогда. Пока изучаю.
И тебе огромное спасибо от любителя антиквара , визжал от восторга...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 06.10.2016, 23:25  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Easyrider83, Паш помнится кто-то совсем недавно бэйсик обожал...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 06.10.2016, 23:26  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Сообщение от dosikus Посмотреть сообщение
Easyrider83, Паш помнится кто-то совсем недавно бэйсик обожал...
А теперь статьи по С пишет, да. Только недавно у каждого свое. Для меня 5 лет - это огромный срок.
Easyrider83 вне форума  
Непрочитано 06.10.2016, 23:27  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

miwutka, ЛА в многих случаях полезней осциллографа.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 06.10.2016, 23:28  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Easyrider83, Дык , помогай заблудшему. Желание и способности у него есть и не такой упертый как многие ардуинщиком здесь.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 06.10.2016, 23:37  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Сообщение от dosikus Посмотреть сообщение
Под них надо платы травить, а некогда.
Пердупердить не мог?
Уж пару шилдов я б тебе под них нарезал.

Сообщение от dosikus Посмотреть сообщение
ЛА в многих случаях полезней осциллографа.
Особенно если взять EzUSB за 5 бакинских и иметь весьма универсальное устройство.
Миниатюры:
Нажмите на изображение для увеличения
Название: Image2.jpg
Просмотров: 0
Размер:	235.3 Кб
ID:	102440   Нажмите на изображение для увеличения
Название: Image1.jpg
Просмотров: 0
Размер:	62.3 Кб
ID:	102441  
omercury вне форума  
Непрочитано 07.10.2016, 00:16  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Сообщение от dosikus Посмотреть сообщение
Easyrider83, Дык , помогай заблудшему. Желание и способности у него есть и не такой упертый как многие ардуинщиком здесь.
Если смогу помочь - обязательно помогу. А пока мне не понятно, в чем его проблема, кроме нежелания изучать материал самостоятельно.
Easyrider83 вне форума  
Непрочитано 07.10.2016, 00:54  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Сообщение от dosikus Посмотреть сообщение
тебе огромное спасибо от любителя антиквара , визжал от восторга...
Ну наконец-то они обрели вечный покой...
Больше года мыкались...
omercury вне форума  
Непрочитано 07.10.2016, 18:39  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Сообщение от miwutka Посмотреть сообщение
вот весь...
Даа, конечно, когда в такую кучу свален весь проект от начала до конца - немудрено, что заглючит на ровном месте.

Малость опережу dosikus-а, выскажу свое мнение.
Очень желательно разделять проект по файлам на модули. С точки зрения конечного кода почти что все равно, как делать, а вот с точки зрения удобства написания-редактирования, тут уж другое дело. Ведь даже просто пролистывать 20-страничную единую портянку весьма муторно, не говоря уже о редактировании.
Поэтому, практически все должно быть оформлено в виде отдельных модулей.
Конечно, надо вначале разобраться и научиться делать такое разделение, ибо есть заморочки с тем, что куда подключить, где объявить и как связать передаваемые значения функций.
В языке Си это называется областью видимости функций, переменных. Надо, по возможности, избегать глобального объявления переменных, когда они видны (доступны) на протяжении всего проекта.
Переменные, функции, дефайны, используемые только внутри одного модуля, и должны быть доступны только в этом модуле и не выходить за его пределы. Связь между модулями - через параметры функций.

Вот например работу с неким дисплеем можно представить так:

-- самый нижний уровень. Файл драйвера интерфейса дисплея (I2C, SPI, параллельный), в котором будут функции низкоуровневой работы с физическим интерфейсом - его первоначальная настройка в функции Interface_Initial(), функции отправки/приема одного байта или массива байтов через интерфейс, безотносительно куда, не конкретно дисплею, а просто куда-то.
Ну и если необходимо требованиями самого дисплея, отправка байта сопровождается передергиванием еще каких-то ног, как например в ILI93xx, это тоже должно быть включено в функции отправки/приема.
Если используется DMA, то производим его предварительную настройку и используем DMA в отправке/приеме.
Доступ к функциям файла драйвера интерфейса осуществляется через его заголовочный файл, в котором объявлены эти функции. Однако, внутренние функции и переменные, используемые только внутри модуля, должны объявляться в самом файле .c, чтобы они не мешались в других файлах.
Заголовочный файл драйвера (name_file.h) подключается (#include name_file.h) как к самому файлу драйвера name_file.c, так и к другому файлу, из которого будут вызываться функции этого драйвера.

-- файл драйвера дисплея, в котором прописаны функции непосредственно отправки/приема команд дисплея, безотносительно его физического интерфейса, то есть, функция отправки команды дисплея не знает, через какой интерфейс - SPI, I2C работает дисплей. Функции этого файла обеспечивают взаимодействие с дисплеем через какой-либо физический интерфейс, описанный функциями драйвера этого интерфейса, отправляют команды и данные в дисплей, принимают ответы дисплея. Именно в этот файл помещаются такие функции, как включение и начальная настройка параметров дисплея, установка произвольной области вывода на дисплей, изменение настроек дисплея, вывод произвольной информации на дисплей.
Все данные передаются исключительно через параметры функций - либо непосредственно, либо через ссылки (адреса переменных).
Так же есть заголовочный файл с объявлениями функций, вызываемых из других файлов, этот файл точно так же будет подключаться к другим файлам, из которых будет вестись управление дисплеем.

Вот, эти 4 файла будут драйвером конкретного дисплея. (сюда же можно присобачить еще и драйвер управления подсветкой дисплея).
Что это дает. Допустим, есть дисплей с несколькими способами подключения, и мы захотели подключить не по I2C, а по SPI - меняем (переписываем) только драйвер физического интерфейса. функции записи/чтения дисплея работают как и прежде. Или пришлось заменить модель дисплея с другим набором команд - меняем драйвер дисплея, не затрагивая построения изображения.

Работать с дисплеем нужно через функции, предоставляемые драйвером дисплея верхнего уровня. Опять же, эта работа должна (желательно) вестись из отдельного файла (модуля) компоновки кадра изображения. То есть, не надо пихать в main.c функцию вывода буквы шрифта.
В майне может остаться вызов функции Welcome_Screen(), а эта самая функция модуля подготовки кадра должна закрасить экран синим цветом и вывести белый текст "Здрасьте!". К маин-файлу подключается (#include) заголовочный файл компоновщика кадра, в котором определена функция Welcome_Screen, а значит, она доступна для вызова из того файла, к которому подключен этот заголовочный файл. Все остальные внутренние функции и переменные, не определенные в заголовочном файле, не будут доступны из маин-файла, но будут вызываться в соответствии с их иерархией подключений, вплоть до самой нижней функции отправки байта в дисплей по интерфейсу.
Таким образом, функцию Welcome_Screen(), записываемую всего одной строчкой, можно очень легко поставить в любое место маин-файла, передвигая ее между такими же функциями других модулей. А значит, легче и ориентироваться в собственной проге, легче отыскивать косяки.
Да и само написание проги становится модульным.

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

Конечно, все описанное можно запросто написать и в одном файле по тем же законам. Однако, портянка текста получится заачоодная. Так что лучче уж сразу научиться разбивать на файлы.

Ну и еще, в процессе написания совершенно не надо стесняться комментировать. Комменты - они ведь для самого себя, они самому себе показывают степень завершенности/незавершенности, какие-то свои мысли и пометки, для самого же себя. Вот например прервался на пару дней, потом открываешь и видишь - на чем остановился, чего еще делать осталось. Конечно, средства разработки имеют свои инструменты наблюдения за процессом типа планировщика задач.
Вложения:
Тип файла: zip Test.zip (18.5 Кб, 0 просмотров)
NewWriter вне форума  
Сказали "Спасибо" NewWriter
miwutka (07.10.2016)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OLED из ЖК 1602 mikesmith Делимся опытом 0 19.05.2016 17:34
LCD или OLED графический дисплей? NecroSS Электроника - это просто 0 06.08.2010 21:33
OLED индикаторы(возможно, от мобильных телефонов, 64х48 и более) Savrik Информация по радиокомпонентам 11 30.06.2010 12:17
Pictiva 128x64 (SSD0323) OLED Module Proteus VSM Model OttoStirliz Микроконтроллеры, АЦП, память и т.д 28 02.04.2008 17:44


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


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