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

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

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

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

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

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


Закрытая тема
 
Опции темы
Старый 14.10.2015, 09:40   #91
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: iar stm8

Сообщение от sergeyye Посмотреть сообщение
Как изменить эту функцию, чтобы сделать её универсальной для всех трёх массивов
Гугель, "двумерный массив как параметр функции".
Сообщение от akegor Посмотреть сообщение
Проще один, двухмерный, общий.
В данном случае может быть и легче, но в целом - не вариант.
Сообщение от Bill Посмотреть сообщение
Или нет?
Не совсем!
Реклама:
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
sergeyye (14.10.2015)
Старый 14.10.2015, 10:06   #92
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: iar stm8

Сообщение от STM32F0 Посмотреть сообщение
Не совсем!
А что именно не так?
Bill вне форума  
Старый 14.10.2015, 10:37   #93
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: iar stm8

Что-нить типа такого можно соорудить
PHP код:
#define Line_Length 32

char *ptr [ ] = {Screen1Screen2Skreen3};
void Load_Buffer (u8 Num_Screenu8 Nun_Line

char *pt ptr[Num_Screen];  
  
pt=&ptNum_Line Line_Length ];
  
Buff = &Buffer_LCD ];                       // Начальный адрес буфера LCD. 
  
for ( u8 i=0‹ Line_Length;  i++ ) *Buff++ = *pt++;    // Копировать кадр в буфер. 

Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
sergeyye (14.10.2015)
Старый 16.10.2015, 09:50   #94
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: iar stm8

Спасибо всем, кто откликнулся.
В результате решил задачу оператором "switch". В указатель *Scrn грузится номер группы двумерных массивов (num_arr - номер группы), содержащий некоторое количество экранных меню, которые в свою очередь выбираются параметром Num_Screen.
PHP код:
void Load_Buffer (u8 num_arru8 Num_Screen)
{
  switch (
num_arr)
  {
  case (
1): Scrn = &Screen [Num_Screen][0]; break;  // Группа экранов главного меню.
  
case (2): Scrn = &DDS [Num_Screen][0];        // Группа экранов меню генератора.
  
}
  
Buff = &Buffer_LCD [0];                       // Начальный адрес буфера LCD.
  
for (u8 i=0i32i++) *Buff++ = *Scrn++;    // Копировать кадр в буфер.


Последний раз редактировалось sergeyye; 16.10.2015 в 10:37.
sergeyye вне форума  
Старый 24.10.2015, 15:29   #95
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: iar stm8

Есть несколько массивов, располагающихся в памяти программ. Декларирую их так:
PHP код:
char    __near DDS_Sq [8][32] = {
  {
"  Continuous        generation  "},  {"  Synchronous       generation  "},
  {
"      Sweep         generator     "},  {"                                 Exit      "},
  {
"Synchronization:  falling edge "},  {"Synchronization:    rising edge "},
  {
"  Swing band Low _______ Hz "},  {" Enter frequency             0 Hz "}  }; 
IAR автоматически дублирует их в ОЗУ.
В чём смысл дубляжа? Чтобы быстрей читались?
Как запретить IAR это безобразие?
sergeyye вне форума  
Старый 24.10.2015, 15:48   #96
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: iar stm8

Магическое const - расположить во флэш!
Сообщение от sergeyye Посмотреть сообщение
В чём смысл дубляжа? Чтобы быстрей читались?
Нет никакого дубляжа! Указали в ОЗУ, оно и легло в ОЗУ! Откуда тут дубляж?

Последний раз редактировалось STM32F0; 24.10.2015 в 15:50.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
sergeyye (24.10.2015)
Старый 24.10.2015, 16:13   #97
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: iar stm8

Сообщение от STM32F0 Посмотреть сообщение
Нет никакого дубляжа!
Но в ОЗУ это попадает из ПЗУ. Стало быть дубляж.
По поводу квалификатора const забил себе в мозг, что он лишь не позволяет программе модифицировать задекларированную таким образом постоянную.
Спасибо!

Последний раз редактировалось sergeyye; 24.10.2015 в 16:28.
sergeyye вне форума  
Старый 24.10.2015, 16:26   #98
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: iar stm8

Сообщение от sergeyye Посмотреть сообщение
Но в ОЗУ это попадает из ПЗУ. Стало быть дубляж.
Нет никакого дубляжа. Если переменная инициализируется определённым значением, то взять это значение из "ниоткуда" просто невозможно. Естественно, что переменная забивается значением из ROM. А как ещё иначе? Но это не дубляж, это тривиальная инициализация переменной.
Когда происходит инициализация переменной значением из EEPROM, никто же не истерит по поводу "дубляжа" и "неправильного" использования памяти?
Сообщение от sergeyye Посмотреть сообщение
По поводу квалификатора const забил себе в мозг, что он лишь не позволяет программе модифицировать задекларированную таким образом постоянную.
Обычно этим страдают адепты "большргр серого брата", там всё в ОЗУ.
В данном случае const - интерпретация Си для МК.

Последний раз редактировалось STM32F0; 24.10.2015 в 16:31.
STM32F0 вне форума  
Эти 2 пользователя(ей) сказали Спасибо STM32F0 за это сообщение:
gromovi (24.10.2015), sergeyye (24.10.2015)
Старый 24.10.2015, 17:06   #99
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: iar stm8

Сообщение от STM32F0 Посмотреть сообщение
Нет никакого дубляжа.
На том и порешим.
Спасибо за исчерпывающий ответ.
sergeyye вне форума  
Старый 26.01.2016, 21:57   #100
gromovi
Заблокирован
 
Регистрация: 12.09.2009
Сообщений: 420
Сказал спасибо: 148
Сказали Спасибо 166 раз(а) в 118 сообщении(ях)
gromovi на пути к лучшему
По умолчанию Re: iar stm8

вот бесит этот стм. как посмотреть какой мк к st link-у подключен? в iar возможно увидеть?
gromovi вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ по STM8 faru STM8 1678 25.05.2024 19:37
ИПС-1 и вольтметр на STM8 igor1000 Источники питания и свет 17 20.11.2016 22:00
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06
IAR STM8 указатель на массив во FLASH picavr STM8 8 19.05.2015 11:40
Проба пера AT91SAM9260 + IAR + J-Link ZED® Микроконтроллеры, АЦП, память и т.д 31 07.12.2010 21:18


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


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