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

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

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

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

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

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


Ответ
Опции темы
Непрочитано 16.12.2011, 21:30   #1121
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
AJScorp, спасибо, компилируется. Но в железе еще не проверял.
Проверял на эмуляторе, работает.

ИМХО, это изврат, никогда не приходилось передавать параметр таким образом, простых указателей достаточно.
Реклама:
AJScorp вне форума   Ответить с цитированием
Непрочитано 19.12.2011, 15:14   #1122
Batisto4ka
Временная регистрация
 
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Batisto4ka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Подскажите, пожалуйста, в программе в цикле работает modbus и запись на flash.
ТОлько когда работает подпрограмма запсии данных во флэш-память - не срабатывают прерывания по USART. Что может быть причиной?
Batisto4ka вне форума   Ответить с цитированием
Непрочитано 19.12.2011, 15:37   #1123
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Всё логично... Когда идёт запись во флэш ничего не должно мешать процессу записи...
Там и с DMA похожая ситуёвина...
st_1 вне форума   Ответить с цитированием
Непрочитано 19.12.2011, 17:20   #1124
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от AJScorp Посмотреть сообщение
Ну, тогда

описание
unsigned char DS1822_Search_Rom_One_Device (GPIO_TypeDef * GPIOx, unsigned long PINx, unsigned char Serial_Num[DS1822_SERIAL_NUM_SIZE]);

вызов
err=DS1822_Search_Rom_One_Device(One_Wire_Pin, (unsigned char*)&DS18B20_sn[1]);
Уходит в hard fault и не возвращается
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 19.12.2011, 17:49   #1125
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
Уходит в hard fault и не возвращается
Надо под отладчиком смотреть, где идет обращение к неверному адресу. Других вариантов пока нету.
AJScorp вне форума   Ответить с цитированием
Непрочитано 20.12.2011, 12:21   #1126
avs2009
Прописка
 
Аватар для avs2009
 
Регистрация: 10.08.2010
Сообщений: 113
Сказал спасибо: 30
Сказали Спасибо 43 раз(а) в 26 сообщении(ях)
avs2009 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

решил для себя написать несколько макросов для работы с портами.
Код:
// варианты настройки пинов порта
//                                       
#define IN_ANALOG 0x0   
#define IN_Z  0x4    
#define IN_R  0x8   
#define IN_    0xC   
  
#define OUT_2MHz  0x2    
#define OUT_2MHz_OPEN  0x6    
#define OUT_2MHz_ALT  0xA   
#define OUT_2MHz_ALT_OPEN 0xE   
  
#define OUT_10MHz 0x1  
#define OUT_10MHz_OPEN 0x5      
#define OUT_10MHz_ALT 0x9  
#define OUT_10MHz_ALT_OPEN 0xD       
  
#define OUT_50MHz 0x3   
#define OUT_50MHz_OPEN 0x7   
#define OUT_50MHz_ALT 0xB  
#define OUT_50MHz_ALT_OPEN 0xF  

// здесь для пинов конкретного порта выставляю то что хочу от них получить
#define CFG_PORT_A_0   IN_Z         
#define CFG_PORT_A_1   IN_Z         
#define CFG_PORT_A_2   IN_Z          
#define CFG_PORT_A_3   IN_Z     
#define CFG_PORT_A_4   OUT_50MHz_ALT 
#define CFG_PORT_A_5   OUT_50MHz_ALT
#define CFG_PORT_A_6   OUT_50MHz_ALT
#define CFG_PORT_A_7   OUT_50MHz_ALT
// и т.д. для каждого пина каждого порта

// здесь получаю значение регистра конфигурации порта - например CRL
#define CFG1_PORT(X) (uint32_t) ((CFG_PORT_##X##_0) * 0x1  + \
                                                   (CFG_PORT_##X##_1  * 0x10) + \
                                                   (CFG_PORT_##X##_2  * 0x100) + \
                                                   (CFG_PORT_##X##_3  * 0x1000) + \
                                                   (CFG_PORT_##X##_4  * 0x10000) + \
                                                   (CFG_PORT_##X##_5  * 0x100000) + \
                                                   (CFG_PORT_##X##_6  * 0x1000000) + \
                                                   (CFG_PORT_##X##_7  * 0x10000000))

// дальше в программе пишу следующее
GPIOA-›CRL= CFG1_PORT(A);
после компиляции получаю
Код:
   \   0000000C   ........           LDR.W    R0,??DataTable17_21  ;; 0x40010800
   \   00000010   ........           LDR.W    R1,??DataTable17_22  ;; 0xbbbb4444
   \   00000014   0160               STR      R1,[R0, #+0]
Вроде все хорошо, все работает, но компилятор (IAR) почему-то выдает предупреждение
Код:
 
Warning[Pe061]: integer operation result is out of range
Кто-нибудь может сказать где здесь выход за диапазон? Регистр устанавливается как мне надо,
проверял в отладчике. Несколько раздражает постоянная ошибка......
avs2009 вне форума   Ответить с цитированием
Непрочитано 20.12.2011, 14:57   #1127
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Кто работает с графическими дисплеями, подскажите. Как организовать работу с дисплеем? Мне видится такой способ - в памяти контроллера лежит готовое изображение, которое по прерыванию каждые 30-50мс выводится на дисплей. Процедуры работают с этой страницей. Но при разрешении 320х240 по байта на цвет выходит 153кБ памяти. Как-то не влезает в мой STM32F103. Можно использовать память дисплея, но обмен данными с ней не такой быстрый. Например, мне надо нарисовать сдвигающуюся в сторону синусоиду. Рисую кривую, жду, такой же кривой закрашиваю, рисую рядом новую? Правильно понимаю? Тогда достаточно хранить в памяти координаты точек и цвета того, что будет выведено на экран.
Как оптимизировать работу с дисплеем?
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 20.12.2011, 15:47   #1128
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
в памяти контроллера лежит готовое изображение, которое по прерыванию каждые 30-50мс выводится на дисплей. Процедуры работают с этой страницей.
Так работает стандартный видеоконтроллер
Цитата:
Но при разрешении 320х240 по байта на цвет выходит 153кБ памяти. Как-то не влезает в мой STM32F103.
и тут вы уперлись в ограничение микроконтроллерной системы Все логично.
Цитата:
Можно использовать память дисплея, но обмен данными с ней не такой быстрый. Например, мне надо нарисовать сдвигающуюся в сторону синусоиду. Рисую кривую, жду, такой же кривой закрашиваю, рисую рядом новую? Правильно понимаю?
Память дисплея и нужно использовать, если у Вас такой дисплей. Алгоритм именно такой. Возможно будет смысл выполнить оптимизацию для вывода только изменившейся части картинки. Тут многое зависит от примененного контроллера экрана. Если "в тупую" давать команды вывода точек- можем получить большие накладные расходы (на одну точку - 3 записи в регистры), поэтому некоторые контроллеры дисплеев позволяют задать область экрана и выводить в неё потоком. Конечно реалтайм видео сделать сложно, но анимация - вполне получается.
__________________
misterdi<@>i.ua
MisterDi вне форума   Ответить с цитированием
Сказали "Спасибо" MisterDi
Easyrider83 (20.12.2011)
Непрочитано 20.12.2011, 17:26   #1129
Left Radio
Частый гость
 
Аватар для Left Radio
 
Регистрация: 20.09.2009
Сообщений: 40
Сказал спасибо: 17
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Left Radio на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
Кто работает с графическими дисплеями, подскажите. Как организовать работу с дисплеем?
Через память дисплея либо внешнюю память.

Сообщение от Easyrider83 Посмотреть сообщение
Как оптимизировать работу с дисплеем?
Учитывать особенности контроллера диспа, вот моя простая библиотечка для работы с НХ8352(400х240 16бит цвет) - Free Simple HX8352 Graphics Library, достаточно оптимизирована именно под НХ8352, использует всего сотню другую оперативки. Под библиотеку и не только написал небольшую утилиту конвертации изображений в код - Bitmap2Code, может пригодится
Скоро планирую небольшое обновление
__________________

Последний раз редактировалось Left Radio; 20.12.2011 в 17:32.
Left Radio вне форума   Ответить с цитированием
Сказали "Спасибо" Left Radio
Easyrider83 (20.12.2011)
Непрочитано 20.12.2011, 17:56   #1130
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Внешнюю память не вариант - у меня демоплата. Никогда не думал, что 32к оперативы мне окажется мало. В общем-то, библиотека для работы с дисплеем есть. Там для заливки экрана используется страничная запись. Заливка происходит быстро. Для вывода изображения тоже самое. Просто был поражен примером на операционке uCOSII2.91
Реально динамичное изображение в реальном времени. И как они это реализовали?
Может быть копать в сторону ДМА и переферии работы с контроллером?
Easyrider83 вне форума   Ответить с цитированием
Ответ

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


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