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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> из флєш - в уарт, как организовать вывод в уарт строки находящейся во флэш
Sergio66
сообщение Feb 14 2006, 13:23
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526



Сдается мне, что *ptr++ инкрементирует не указатель, а саму переменную по адресу ptr!!! Сделайте так: ptr++
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 14 2006, 13:53
Сообщение #17


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(Георгий @ Feb 14 2006, 14:40) *
У меня с Уартом в порядке, а вот при сравнении компилятор выдает ошибку
Код
char HexCom[9];
__flash char Status[]   = "STATUS\0";

if (strcmp(HexCom, Status) == 0) response_sms(1);


Код
Error[Pe167]: argument of type "char __flash *" is incompatible with parameter of type "char const *"


Логика компилятора железная - не совпадают типы. Пользуйтесь strcmp_P!


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Георгий
сообщение Feb 15 2006, 06:18
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957



А на strcmp_P обругался! Он в каком хедере объявлен?
Нашел. pgmspace.h

Сообщение отредактировал Георгий - Feb 15 2006, 06:23


--------------------
Обычно последним смеется тот, кто хуже соображает!
Go to the top of the page
 
+Quote Post
Tech
сообщение Feb 15 2006, 07:54
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 1-12-04
Пользователь №: 1 267



__flash char Status[] = "STATUS\0";

if (strcmp(HexCom, (char *)Status) == 0) response_sms(1);
Go to the top of the page
 
+Quote Post
Георгий
сообщение Feb 15 2006, 09:06
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957



Только судя по листингам результат будет ошибочный.
Код
   \   000000C8   ....               RCALL   gsb_decoder
   \   000000CA   E026               LDI     R18, 6
   \   000000CC   ....               LDI     R17, LOW(Status)
   \   000000CE   ....               LDI     R16, HexCom
   \   000000D0   ....               RCALL   strncmp
   \   000000D2   2B01               OR      R16, R17


   \   000000C8   ....               RCALL   gsb_decoder
   \   000000CA   E006               LDI     R16, 6
   \   000000CC   ....               LDI     R30, LOW(Status)
   \   000000CE   ....               LDI     R31, Status >> 8
   \   000000D0   ....               LDI     R26, HexCom
   \   000000D2   ....               RCALL   strncmp_P
   \   000000D4   2B01               OR      R16, R17

В первом случае он возьмет байт по LD, а во втором по LPM

Сообщение отредактировал Георгий - Feb 15 2006, 09:12


--------------------
Обычно последним смеется тот, кто хуже соображает!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th August 2025 - 08:21
Рейтинг@Mail.ru


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