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

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

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

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

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

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


 
Опции темы
Непрочитано 12.12.2011, 22:04  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от CMaxx22 Посмотреть сообщение
пс. Вам плата пришла уже? Датчики?
Да, сегодня первые испытания проходили. Уже запустил примитивную анимацию, завтра попробую руссифицировать. Все просто и понятно.
Датчики тоже пришли. Смутило, что на всех одинаковый код написан. Поработал с одним датчиком. Результаты вы видели. Все работает.
Сейчас еще добавил вывод на экран.
На счет указателей.
Фишка в том, что номера датчиков можно хранить во флеше, а значит экономить RAM.
Реклама:
Easyrider83 вне форума  
Непрочитано 13.12.2011, 06:39  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от Easyrider83 Посмотреть сообщение
Поработал с одним датчиком. Результаты вы видели. Все работает.
Я правильно понял, что если у меня есть адреса то я могу обращаться к нескольким датчикам на одной шине при помощи этого кода? Подскажите как передать данные из двумерного массива в одномерный, например из massiv[5][8] передать все данные скажем второй строки в massiv1[8]? Чтото типа massiv1[8]=massiv[2][...] как сделать? Атот у меня адреса пяти датчиков хранятся в двухмерном массиве, а функции по работе с датчиком принимают только одномерный массив с одним адресом. Или проще перегнать данные в другой одномерный массив циклом, а потом присвоить?

Последний раз редактировалось CMaxx22; 13.12.2011 в 09:02.
CMaxx22 вне форума  
Непрочитано 13.12.2011, 12:39  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от CMaxx22 Посмотреть сообщение
Я правильно понял, что если у меня есть адреса то я могу обращаться к нескольким датчикам на одной шине при помощи этого кода?
Именно. Для того и сделано.
Сообщение от CMaxx22 Посмотреть сообщение
Подскажите как передать данные из двумерного массива в одномерный, например из massiv[5][8] передать все данные скажем второй строки в massiv1[8]? Чтото типа massiv1[8]=massiv[2][...] как сделать?
Надо прояснить ситуацию. Мои функции не имеют своего массива. Они используют указатель на ваш массив. Таким образом в процедуру вместо массива передаются адреса ячеек памяти, где лежит ваш массив.
Как конкретно это написать я вам позже скажу.
Ну и поработаем с большим количеством датчиков тоже. У меня их 10.
Я предполагаю такой алгоритм - две ноги контроллера отводятся под шину 1-wire. На первой собственно шина и датчики. Когда надо подключить новый датчик - подключаем его ко второй ноге. Контроллер запоминает его адресс и затем обращается к ниму на основной шине.
Из расходов - одна нога и резистор. Не много.
Easyrider83 вне форума  
Непрочитано 13.12.2011, 13:13  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Я не ведал, что творил но вобщем получилось. 5 датчиков на одной ноге опрашиваются и выдают значения. Этого мне хватит так как добавлять датчики я не буду. Спасибо вам огромное за качественную помощь в решении этого вопроса!
Пара нюансов только есть: в delays.h хоть 48 хоть 72 мгц ставь - всё равно работает. Ну и второй, иногда при включении зависает сразу или через несколько тактов, иногда нет... это наверное кварц какой-нибудь шалит и 1wire тут не причём?

И ещё одно, раз уж вы теперь обладатель похожей на мою платы не могли бы вы попробовать посадить датчики на РВ3 который джитаг? Ато вы пишите, что одна нога это не много, а для меня это много, у меня пока минус одна нога
У вас контроллер экрана тоже ILI939x? Хороших графических библиотек под него нет? С русскими буквами например?
Ну и на последок не знаете ли вы как сохранить/считать данные на устройстве во flash чтобы настройки меню сохранять? Я впринципе нашел одно описание, но там страшные структуры и всё в указателях, ничего не понятно. Может быть существует более простой способ?
CMaxx22 вне форума  
Непрочитано 13.12.2011, 21:09  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от CMaxx22 Посмотреть сообщение
Пара нюансов только есть: в delays.h хоть 48 хоть 72 мгц ставь - всё равно работает.
Боюсь ошибаться, завтра уточню, но возможно, я вам скинул проект, где работает функция задержки, которая завязана на systick. Ей по барабану частота кварца.

Сообщение от CMaxx22 Посмотреть сообщение
иногда при включении зависает сразу или через несколько тактов, иногда нет... это наверное кварц какой-нибудь шалит и 1wire тут не причём?
Сложно говорить, не увидев кода. Циклы используете? Может зависать на некоторых циклах, которые вечно ждут какого-нибудь флага. Таймаут делать обязательно.

Сообщение от CMaxx22 Посмотреть сообщение
И ещё одно, раз уж вы теперь обладатель похожей на мою платы не могли бы вы попробовать посадить датчики на РВ3 который джитаг?
Я понял. Вам нужен код, чтобы заставить PB3 работать как дигитальный пин. Хорошо, я проверю. Завтра, если будет возможность.

Сообщение от CMaxx22 Посмотреть сообщение
У вас контроллер экрана тоже ILI939x?
Нет, у меня другой. Но, думаю, большой разницы не будет. Вам же не инитиализация нужна.
Сообщение от CMaxx22 Посмотреть сообщение
Хороших графических библиотек под него нет?
Есть. Но хорошей не назовешь - ставит точку и рисует линию. Для меня достаточно - надо будет, еще напишем.
Сообщение от CMaxx22 Посмотреть сообщение
С русскими буквами например?
Посмотрите внимательно процедуру вывода текста на экран. Она тупо рисует 8х16 прямоугольник, заполняя его данными из константного массива со шрифтами. Добавьте туда русских букв и будет у вас писать по-русски. Я, например, первым делом коэфициент масштабирования добавил. Чтобы большие буквы рисовать ))
Сообщение от CMaxx22 Посмотреть сообщение
Ну и на последок не знаете ли вы как сохранить/считать данные на устройстве во flash чтобы настройки меню сохранять?
Много данных? Может быть хватит тех регистров, которые живут за счет батарейки?
Для работы с флешем есть библиотека. И даже примеров много. Я пока не использую. Я либо на батарейке держать буду, либо внешнюю eeprom повешу.
Easyrider83 вне форума  
Непрочитано 14.12.2011, 12:52  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Цитата:
Сложно говорить, не увидев кода. Циклы используете?
Так и есть, я в условии одном забыл после else поставить фиг. скобки и написал несколько строк кода без них. Как ни странно компилятор не зашкнил и даже работало через раз
Сообщение от Easyrider83 Посмотреть сообщение
Я понял. Вам нужен код, чтобы заставить PB3 работать как дигитальный пин.
Ну да, попробуйте пожалуйста подключить туда датчик и добиться от него ответа, у меня не вышло хотя плясал с бубном долго.
Сообщение от Easyrider83 Посмотреть сообщение
Посмотрите внимательно процедуру вывода текста на экран. Она тупо рисует 8х16 прямоугольник, заполняя его данными из константного массива со шрифтами. Добавьте туда русских букв и будет у вас писать по-русски. Я, например, первым делом коэфициент масштабирования добавил. Чтобы большие буквы рисовать ))
Ну да я поверхностно уже смотрел, а где тогда взять эти значения, что в массив букв вписаны под русские буквы? Я видел в FreeRTOS есть программка которая может сгенерить эти коды для любого виндовского шрифта и вывести на экран массивы значений для любого символа. Впринципе можно оттуда содрать вручную, попробую потом. А насчёт функции масштабирования я бы с большой радостью послушал вашу идею! Сам тоже сделал чтото похожее но так коряво, что любой другой вариант был бы лучше. Я просто в процедуре, которая непосредственно рисует точки на экране из массива букв, сделал так, чтобы вместо пикселя по координатам Х,У рисовался закрашенный квадрат с координатами x-1,y-1,x+1,y+1 ну и расстояние между точками на 3 пикселя увеличил, вот такое масштабирование в 3 раза без вариантов выбора. Шрифт очень пикселированный и некрасивый получился

Сообщение от Easyrider83 Посмотреть сообщение
Много данных? Может быть хватит тех регистров, которые живут за счет батарейки?
Для работы с флешем есть библиотека. И даже примеров много.
Впринципе не много, 20 регистров бэкап домена по 2 байта бы хватило, но кто знает как себя поведёт батарейка под давлением атмосфер так в 10-15? Кстати а кварц себя как будет чувствовать под таким давлением?
Можно с сылку на библиотеку для работы с флешем? Очень бы не помешало, найти сам не могу.
А с бэкап доменом проще работать чем с флеш?

И последний вопрос, который меня терзает со вчерашнего дня, как правильно работать с цветами при выводе на экран? Коды цвета шеснадцатеричные в 2 байта длинной каждый. Мне надо чтобы например цвет символа плавно изменился от чёрного к красному захватя все градации красного, но когда я нахожу например красный цвет и его десятичное значение равно 60012, то делая к примеру 60012++ или 60012-- я получаю не градации, а совсем разные цвета. Какова зависимость, как можно реализовать в цикле плавное включение одного цвета?
CMaxx22 вне форума  
Непрочитано 14.12.2011, 14:56  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Цитата:
Так и есть, я в условии одном забыл после else поставить фиг. скобки и написал несколько строк кода без них. Как ни странно компилятор не зашкнил и даже работало через раз
Маленький хинт - без скобок после оператора for, if, while и им подобных выполняется ОДИН следующий оператор.
Цитата:
Ну да, попробуйте пожалуйста подключить туда датчик и добиться от него ответа, у меня не вышло хотя плясал с бубном долго.
Работает. Надо было только дописать строчку для отключения JTAG:
AFIO-›MAPR=(AFIO-›MAPR&0xF8FFFFFF)|(1‹‹25);
На счет цветов пока не смотрел. Сейчас времени нет совершенно. Извините.
Easyrider83 вне форума  
Непрочитано 14.12.2011, 15:22  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от CMaxx22 Посмотреть сообщение
Мне надо чтобы например цвет символа плавно изменился от чёрного к красному захватя все градации красного, но когда я нахожу например красный цвет и его десятичное значение равно 60012, то делая к примеру 60012++ или 60012-- я получаю не градации, а совсем разные цвета. Какова зависимость, как можно реализовать в цикле плавное включение одного цвета?
Ну так и разберитесь с форматом представления цвета...
Если у вас rgb565, то красный - 0xF800...
Вам нужно инкрементировать/декрементировать 0x00F8, а потом результат задвигать на место...
st_1 вне форума  
Непрочитано 14.12.2011, 17:43  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от Easyrider83 Посмотреть сообщение
Работает. Надо было только дописать строчку для отключения JTAG:
AFIO-›MAPR=(AFIO-›MAPR&0xF8FFFFFF)|(1‹‹25);
Спасибо! Я попробую.
Сообщение от st_1 Посмотреть сообщение
Ну так и разберитесь с форматом представления цвета...
Если у вас rgb565, то красный - 0xF800...
Вам нужно инкрементировать/декрементировать 0x00F8, а потом результат задвигать на место...
Но как это всё провернуть? Чуть бы подробнее. Вот так некоторые цвета дефайнятся может это чтото даст:
#define BLACK 0x0000 /* ºÚÉ«£º 0, 0, 0 */
#define NAVY 0x000F /* ÉîÀ¶É«£º 0, 0, 128 */
#define DGREEN 0x03E0 /* ÉîÂÌÉ«£º 0, 128, 0 */
#define DCYAN 0x03EF /* ÉîÇàÉ«£º 0, 128, 128 */
#define MAROON 0x7800 /* ÉîºìÉ«£º128, 0, 0 */
#define PURPLE 0x780F /* ×ÏÉ«£º 128, 0, 128 */
#define OLIVE 0x7BE0 /* éÏé*ÂÌ£º128, 128, 0 */
#define LGRAY 0xC618 /* »Ò°×É«£º192, 192, 192 */
#define DGRAY 0x7BEF /* Éî»ÒÉ«£º128, 128, 128 */
#define BLUE 0x001F /* À¶É«£º 0, 0, 255 */
#define GREEN 0x07E0 /* ÂÌÉ«£º 0, 255, 0 */
#define CYAN 0x07FF /* ÇàÉ«£º 0, 255, 255 */
#define RED 0xF800 /* ºìÉ«£º 255, 0, 0 */
#define MAGENTA 0xF81F /* Æ·ºì£º 255, 0, 255 */
#define YELLOW 0xFFE0 /* »ÆÉ«£º 255, 255, 0 */
#define WHITE 0xFFFF /* °×É«£º 255, 255, 255 */
#define IDMCOLOR(color) (((color & 0x001F) ‹‹ 11) | ((color & 0xF800) ›› 11) | (color & 0x07E0))

Красный тот Что означает инкрементировать/декрементировать 0x00F8, а потом результат задвигать на место..? Типа Line(10,10,100,100,0x00F8--) сразу даст мне предыдущую градацию красного? и всё?

Последний раз редактировалось CMaxx22; 14.12.2011 в 17:49.
CMaxx22 вне форума  
Непрочитано 14.12.2011, 19:07  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Попробовал инкрементировать 0xF800 получилось немного не то, что я хотел. Там цвет от красного плавно переходит в розовый или в желтый если декрементировать. А мне нужно именно количество красного менять, скажем если в RGB красный это 0.0.255 то мне нужно получать 0.0.250 - 0.0.240 - 0.0.230 - 0.0.220 итд. Как это выразить в шеснадцатеричном коде где красный это 0xF800 а не 0.0.255?
CMaxx22 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Технология изготовления печатной платы Tungus55 Делимся опытом 1165 06.01.2017 19:19
Книги dosikus Делимся опытом 11242 29.12.2015 23:45
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


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