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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 09.09.2010, 22:36  
vovan_zh
Прописка
 
Регистрация: 29.08.2005
Сообщений: 139
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
vovan_zh на пути к лучшему
По умолчанию WinAVR не нравится символ '\'

Началось с того что решил перевести этот исходник http://radiokot.ru/lab/controller/15/ под WinAVR и заметил что некоторые символы сдвинуты на единицу относительно таблицы ASCII. Путем логических проб быстро выявилась пропажа символа ']' (тот что перед '\'). Сравнение этого драйвера для KS0108 с AVRLibs выявило что в коментах вот такая разница:
первый:
{0x02,0x04,0x08,0x10,0x20}, // \
{0x00,0x41,0x41,0x7F,0x00}, //]
второй:
0x02, 0x04, 0x08, 0x10, 0x20,// "\"
0x41, 0x41, 0x7F, 0x00, 0x00,// ]
тоесть в первом случае символ ']' улетал в коменты. Редактирование под второй вариант помогли, но пропал символ '\'. Тоесть вывод строки "[\]" выглядел как "[]". Если использовать функцию вывода одного символа '\', то компилятор выдает ошибки:
main.c:234: error: missing terminating ' character - на эту строку glcdWriteChar('\');
main.c:235: error: expected expression before 'while' - идет сразу за glcdWriteChar('\');
и даже на на скобку завершающую функию main ругается.
main.c:326: error: expected ';' before '}' token
также еще эта строка в редакторе WinAVR выделяется цветной полосой, начиная от символа!!!
В принципе не смертельно - все что приходит из вне в хексе и выведется как надо, а один символ можно и просто 0х5с набрать, а вот строку константой не выведешь. Просто интересно разобраться, а может комуто и чисто для информации пригодится.
Реклама:
vovan_zh вне форума  
Сказали "Спасибо" vovan_zh
warel (27.06.2019)
Непрочитано 09.09.2010, 23:09  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'.

Попробуйте так
PHP код:
{0x02,0x04,0x08,0x10,0x20}, /* \ */
{0x00,0x41,0x41,0x7F,0x00}, //] 
Проблем при компиляции не будет
harchenko_pavel вне форума  
Эти 2 пользователя(ей) сказали Спасибо harchenko_pavel за это сообщение:
vovan_zh (10.09.2010), warel (27.06.2019)
Непрочитано 09.09.2010, 23:43  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'.

Сообщение от vovan_zh Посмотреть сообщение
Просто интересно разобраться, а может комуто и чисто для информации пригодится.
А в чем собственно разбираться?
// \ - Означает что вы используете много строковый комментарий, который продолжается на следующей строке. И все, что будет находится между
PHP код:
// \
и вот тут // 
Будет воспринято компилятором как комментарий.
Для много строковых комментариев или если вам нужно поместить в комментарий символ \ используйте конструкцию
PHP код:
/* \\\\\\\Многостроковый
комментарий\\\\\\\ */ 

Последний раз редактировалось harchenko_pavel; 09.09.2010 в 23:50.
harchenko_pavel вне форума  
Эти 2 пользователя(ей) сказали Спасибо harchenko_pavel за это сообщение:
vovan_zh (10.09.2010), warel (27.06.2019)
Непрочитано 10.09.2010, 01:32  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'.

нигде не нашёл -Но- логически - \ в Комментарии - перевод строки
Upd Комментария конечно (мож плохо искал? в ANSI - чё-то навскидку нету.. ) ( но какая-то ячейка(заблокированная в данное время) глаголит - было- чё-то такое...
(моя ячейка - в мозгу- проснулась- и нашла чёй-то)
(Нашёл - перевод - Автоматический)

Поскольку эти преобразования происходят, прежде чем все другие обработки можно разделить линии механически обратный слэш-новая строка в любом месте. You can comment out the end of a line. Вы можете закомментировать в конце линии. You can continue a line comment onto the next line with backslash-newline. Вы можете продолжить линию комментарий на следующей строке с обратной косой-строки. You can even split ` /* ', ` */ ', and ` // ' onto multiple lines with backslash-newline. For example: Вы даже можете разделить `/ * ',` * /' и `/ / 'на несколько строк в обратную косую черту-с новой строки. Например:

/\ / \
* *
*/ # /* * / # / *
*/ defi\ * / Определенности \
ne FO\ пе для \
O 10\ O 10 \
20 20

Последний раз редактировалось OlegNZH; 10.09.2010 в 01:49.
OlegNZH вне форума  
Сказали "Спасибо" OlegNZH
warel (27.06.2019)
Непрочитано 10.09.2010, 08:09  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'.

Сообщение от OlegNZH Посмотреть сообщение
нигде не нашёл
char '\' at end of line is threaten as that statement is continuing on next
line. '//' comments is mentioned for one line only, and for multiline
comments the right way is '/* */'.

Последний раз редактировалось harchenko_pavel; 10.09.2010 в 08:13.
harchenko_pavel вне форума  
Эти 2 пользователя(ей) сказали Спасибо harchenko_pavel за это сообщение:
OlegNZH (10.09.2010), warel (27.06.2019)
Непрочитано 10.09.2010, 17:11  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'

какой "многостроковый комментарий"... Просто обратный слэш отменяет перевод строки. Ваш компилятор получил строку:
"{0x02,0x04,0x08,0x10,0x20}, // {0x00,0x41,0x41,0x7F,0x00}, //]" и нормально её отработал. Не так, как было задумано.
makakus вне форума  
Эти 2 пользователя(ей) сказали Спасибо makakus за это сообщение:
OlegNZH (10.09.2010), warel (27.06.2019)
Непрочитано 10.09.2010, 17:35  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'

Пост #5 harchenko_pavel я-же- поправился потом? (машинный перевод, конечно-бяка (я-то понял(в English) ..но не факт-что- к месту его привёл )(криптография,блинн ))
OlegNZH вне форума  
Сказали "Спасибо" OlegNZH
warel (27.06.2019)
Непрочитано 10.09.2010, 19:50  
vovan_zh
Прописка
 
Регистрация: 29.08.2005
Сообщений: 139
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
vovan_zh на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'

Спасибо всем откликнувшимся. Но насчет коментариев все ясно, если внимательно читали мой первый пост - то вариант из AVRLibs отлично все отработал:
0x02, 0x04, 0x08, 0x10, 0x20,// "\"
понравился еще предложеный вариант /* \ */
Вопрос в был в том что в исходном коде нельзя отправить констатную строчку типа "Users\user\" - все символы '\' будут игнорированы и мы увидим "Usersuser". Может что в компиляторе можно настроить, хотя это не смертельно, просто интересно.
vovan_zh вне форума  
Сказали "Спасибо" vovan_zh
warel (27.06.2019)
Непрочитано 10.09.2010, 20:11  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'

Сообщение от vovan_zh Посмотреть сообщение
все символы '\' будут игнорированы и мы увидим "Usersuser".
А если поставить два символа \\ ? Вместо одного ? Попробуйте.

Последний раз редактировалось andries5; 10.09.2010 в 20:24.
andries5 вне форума  
Эти 2 пользователя(ей) сказали Спасибо andries5 за это сообщение:
vovan_zh (10.09.2010), warel (27.06.2019)
Непрочитано 10.09.2010, 20:25  
RY723
Заблокирован
 
Регистрация: 08.08.2007
Сообщений: 2,843
Сказал спасибо: 378
Сказали Спасибо 1,368 раз(а) в 746 сообщении(ях)
RY723 на пути к лучшему
По умолчанию Re: WinAVR не нравится символ '\'

Сообщение от andries5 Посмотреть сообщение
поставить два символа \\ ? Вместо одного
Так и делается, что тут гадать.
RY723 вне форума  
Сказали "Спасибо" RY723
warel (27.06.2019)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06
Библиотеки для Xmega под WinAVR harchenko_pavel AVR 21 15.03.2013 23:00
На WinAVR + AVR Studio c CVAVR Vetal-soft Embedd С 87 03.03.2013 20:31
помогите начинающему по WinAVR umkamaks Микроконтроллеры, АЦП, память и т.д 4 05.05.2010 21:01
Вопрос winavr wss60 Микроконтроллеры, АЦП, память и т.д 6 09.03.2010 07:33


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


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