реклама на сайте
подробности

 
 
> Подскажите как правильно передать строку в функцию?, Хочу писать putstring("Hello Word\r\n") а не вывходит
mempfis_
сообщение Sep 9 2009, 15:08
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Добрый день.
Сижу ламаю голову вот над каким вопросом - есть самописная функция putstring(unsigned char __flash *pData) которая по указателю считывает строку и передаёт её по уарту в терминал.

Если объявить строку и передать указатель на неё в функцию то всё работает правильно:
Код
__flash unsigned char txt[] = "Start Programm\r\n";
putstring(txt)


Хочу сделать запись проще - при использовании функции сразу писать в ней строку:
Код
putstring("Start Programm\r\n")


Компилятор выдаёт ошибку
Код
Error[Pe167]: argument of type "char const *" is incompatible with parameter of type "unsigned char __flash *"


Привожу к типу unsigned char __flash * в надежде что компилятор поймёт что строку надо разместить во флеш а в функцию передать указатель:
Код
putstring( (unsigned char __flash *) "Start Programm\r\n")


Никакой ругани нет но и не работает совсем.
Прогнал в симуляторе - выяснил что во втором случае передаётся неверный указатель на строку и соответственно читается всякая белеберда из памяти программ.

Собственно вопрос как можно сделать чтобы второй вариант записи работал?
Для наглядности программы хочется чтобы строки писались в самой функции.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Sep 9 2009, 16:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(mempfis_ @ Sep 9 2009, 17:08) *
Хочу сделать запись проще....

Проще, по-гарвардовски, сделали микроконтроллер smile.gif, посему придется Вам перестать хотеть делать проще и делать "сложнее" sad.gif. Насколько смогли, авторы компилятора прикрыли проблему __flash, но дальше ручками sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Sep 9 2009, 16:59
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(zltigo @ Sep 9 2009, 19:18) *
Проще, по-гарвардовски, сделали микроконтроллер smile.gif, посему придется Вам перестать хотеть делать проще и делать "сложнее" sad.gif. Насколько смогли, авторы компилятора прикрыли проблему __flash, но дальше ручками sad.gif


Т.е. эта проблема нерешаема на уровне компилятора?
Сделать сложнее смогу smile.gif Жаль программа будет не суперчитабельной sad.gif
Всем спасибо за консультации, буду переделывать код smile.gif

Сообщение отредактировал mempfis_ - Sep 9 2009, 17:05
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 01:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016