Страница 8 из 12

Re: Arduino

Добавлено: 24 апр 2017, 19:15
Академик Иосиф

Код: Выделить всё

	unsigned char string1[] = "Академик Иосиф";
	unsigned char string2[] = "forum.smolensk.ws";
	unsigned char string3[] = "2017 год";
	unsigned char string4[] = "24 апреля";
	unsigned char string5[] = "19:10 (примерно)";
	unsigned char string6[] = "На улице +8.3'C";
	unsigned char string7[] = "Давление 735 мм рт.ст.";
	unsigned char string8[] = "Без осадков";
иркан.jpg
опять штырит, но в другом месте :ne_vi_del:

Re: Arduino

Добавлено: 24 апр 2017, 19:18
Академик Иосиф
я уже молчу про функцию переноса по словам с прокруткой :ne_ne_ne:

Re: Arduino

Добавлено: 24 апр 2017, 19:30
neutrino
Попробуй пока такой вариант. Делаем строки глобальными с неизменным адресом и неприкосновенные.

Код: Выделить всё

    
    volatile static unsigned char string1[] = "cъешь еще этих";
    volatile static unsigned char string2[] = "мягких французских";
    volatile static unsigned char string3[] = "булок, да выпей";
    volatile static unsigned char string4[] = "чаю! @#;%:?*()_+";
    volatile static unsigned char string5[] = "СЪЕШЬ ЕЩЕ ЭТИХ";
    volatile static unsigned char string6[] = "МЯГКИХ ФРАНЦУЗСКИХ";
    volatile static unsigned char string7[] = "БУЛОК, ДА ВЫПЕЙ";
    volatile static unsigned char string8[] = "ЧАЮ?[]{}\|/`~";


    int main()
    {
	
       LCD12864_Init();
       _delay_ms(1);
       LCD12864_Clr();
       _delay_ms(1);
       
       LCD12864_String(0,0,string1,sizeof(string1)-1);
       LCD12864_String(1,0,string2,sizeof(string2)-1);
       LCD12864_String(2,0,string3,sizeof(string3)-1);
       LCD12864_String(3,0,string4,sizeof(string4)-1);
       LCD12864_String(4,0,string5,sizeof(string5)-1);
       LCD12864_String(5,0,string6,sizeof(string6)-1);
       LCD12864_String(6,0,string7,sizeof(string7)-1);
       LCD12864_String(7,0,string8,sizeof(string8)-1);
       while(1);
    }

Re: Arduino

Добавлено: 24 апр 2017, 19:33
Академик Иосиф
О, а это работает. Благодарю. Вот теперь со спокойной душой можно пилить перенос по словам.
Вот только почему то обратный слеш пропал :ne_vi_del:

Re: Arduino

Добавлено: 24 апр 2017, 19:38
neutrino
Академик Иосиф писал(а):О, а это работает. Благодарю. Вот теперь со спокойной душой можно пилить перенос по словам.
Вот только почему то обратный слеш пропал :ne_vi_del:
По-хорошему должен работать и предыдущий вариант, либо линкер обязан выдать ошибку выделения памяти.

Каким компилятором пользуешься?

Re: Arduino

Добавлено: 24 апр 2017, 19:39
neutrino
Академик Иосиф писал(а): Вот только почему то обратный слеш пропал :ne_vi_del:
Обратный слэш на С выглядит так: '\\', то есть их два. Попробуй.

Re: Arduino

Добавлено: 24 апр 2017, 19:41
neutrino
"ЧАЮ?[]{}\\|/`~";

Re: Arduino

Добавлено: 24 апр 2017, 19:49
Академик Иосиф
neutrino писал(а):"ЧАЮ?[]{}\\|/`~";
Это чё за странность такая? Я чего-то не знаю?

Re: Arduino

Добавлено: 24 апр 2017, 19:53
neutrino
Академик Иосиф писал(а):
neutrino писал(а):"ЧАЮ?[]{}\\|/`~";
Это чё за странность такая? Я чего-то не знаю?
Не знаешь )) Обратный слэш в языке С означает начало спецсимвола.

'\0' - конец строки
'\n' - новая строка
'\r' - возврат каретки

И многое другое.

Re: Arduino

Добавлено: 25 апр 2017, 11:53
John Prick
Может, проблема в несоответствии типов?
unsigned char string1[] = "cъешь еще этих";
//...
void LCD12864_String(unsigned char x0,unsigned char y0,char* buffer, unsigned char count)
//...
void LCD12864_Char(unsigned char x0, unsigned char y0, unsigned char code)
Не должно, по идее, влиять, но мало ли что там компилятор выдумает.

Re: Arduino

Добавлено: 25 апр 2017, 12:05
FreemanNow
Академик Иосиф, примерно такая вот фигня бывает в юниксе если текстовый файл для скрипта готовился в виндовом редакторе. Разница в том, что в винде перевод строки содержит два символа (CR,LF), а в юниксе только CR, попробуй убрать лишний

Re: Arduino

Добавлено: 25 апр 2017, 12:20
neutrino
John Prick писал(а):Может, проблема в несоответствии типов?
unsigned char string1[] = "cъешь еще этих";
//...
void LCD12864_String(unsigned char x0,unsigned char y0,char* buffer, unsigned char count)
//...
void LCD12864_Char(unsigned char x0, unsigned char y0, unsigned char code)
Не должно, по идее, влиять, но мало ли что там компилятор выдумает.
Приведение типов операндов делается перед вычислением, в данном случае - перед передачей параметров. Если компилятор по-разному размещает в памяти char и unsigned char, это конец света и крах всех надежд (приходится использовать худ.эвфемизмы, поскольку слово на букву "П" запретил кровавый режим).

Но так писать, конечно нельзя. Типы должны совпадать, иначе сюрпризы появятся в других местах ))

Re: Arduino

Добавлено: 25 апр 2017, 12:40
John Prick
Да и в принципе unsigned char это числовой тип, а символьный именно char. Т.е. строку обьявить надо char string1[] = "cъешь еще этих";

И ещё подумалось, а какой размер стека выделяет этот компилятор для функции? Может, в этом проблема?

Re: Arduino

Добавлено: 25 апр 2017, 12:54
neutrino
John Prick писал(а):Да и в принципе unsigned char это числовой тип, а символьный именно char. Т.е. строку обьявить надо char string1[] = "cъешь еще этих";

И ещё подумалось, а какой размер стека выделяет этот компилятор для функции? Может, в этом проблема?
Евгений, я понимаю, что в данном случае main не возвращает управление, но правила выделения памяти для локальных переменных никуда не исчезают. Переменная, объявленная внутри функции, является автоматической, и компилятор может разместить ее даже в регистрах общего назначения, он - машина, ему пофиг, что это строка ))) Здесь такое вряд ли, но возможны другие варианты. Чтобы выяснить, нужна инфа по настройкам памяти, включена или нет оптимизация, а наш юный друг не ответил даже, что за компилятор он использует. С объявлением строк внутри функций чудеса бывают у IAR, например.

Универсальный метод - указать, что строка имеет неизменный адрес.

Re: Arduino

Добавлено: 25 апр 2017, 13:31
Академик Иосиф
neutrino писал(а):а наш юный друг не ответил даже, что за компилятор он использует
да чорт его знает, атмел студио 6.1

Re: Arduino

Добавлено: 25 апр 2017, 14:05
neutrino
Академик Иосиф писал(а):
neutrino писал(а):а наш юный друг не ответил даже, что за компилятор он использует
да чорт его знает, атмел студио 6.1
Понятно. Я с ним никогда не работал, не могу надежно указать причины такого сбоя.

Re: Arduino

Добавлено: 25 апр 2017, 15:04
John Watson
Академик Иосиф, а какой микроконтроллер?

Re: Arduino

Добавлено: 25 апр 2017, 15:06
Академик Иосиф
атмега8

Re: Arduino

Добавлено: 25 апр 2017, 18:24
barmoglot
FreemanNow писал(а):Академик Иосиф, умный дом для бармаглота это не просто сложно, это непостижимо))
дурачков искать не надо, они сами тебя находят.
зы: чтоб ты знал, у меня голосовое управление светом по всему дому, контроль температуры и видеонаблюдение. Теперь иди переваривай.

Re: Arduino

Добавлено: 25 апр 2017, 18:26
barmoglot
neutrino писал(а):
barmoglot писал(а):neutrino, реализовать умный дом сможешь?
К сожалению, нет. Я не занимаюсь крупными системами. Если только отдельный датчик или манипулятор, но их уже много готовых, нет смысла изобретать велосипед.
Эх.
Короче, будут желающие, взял бы на работу для продвижение проекта.

Re: Arduino

Добавлено: 25 апр 2017, 20:36
Sceapt
barmoglot, боюсь что это даже не зачатки умного дома в полном его понимании. Это разрозненные сервисы и не более.

Re: Arduino

Добавлено: 25 апр 2017, 20:47
HTC
+1


barmoglot, мути "китай" под собственным брэндом, можешь взять "полукитай" с разрабами ,но это явно будет не один человек с "доход от 30-ти" )))

А весь твой "умный дом" пойдет по одному месту, когда последнему товарищу замутят девайс для "сказки" http://market.smolensk.ws/message/view.html?id=11986 (просто для примера привел, если что).

Re: Arduino

Добавлено: 25 апр 2017, 20:50
Sceapt
Да, ODM-производство в Китае, у индусов заказать код приложений для мобильных и настольных ОС. Это будет дешевле и эффективнее.

Re: Arduino

Добавлено: 25 апр 2017, 21:05
neutrino
Если у Бармаглота есть оригинальная идея и свободные средства, я приветствую создание рабочих мест для программистов. Поэтому не могу согласиться с вами.

Re: Arduino

Добавлено: 25 апр 2017, 21:09
HTC
:-))
Импортозамещение наше все

Re: Arduino

Добавлено: 25 апр 2017, 21:14
Sceapt
neutrino, так а смысл, если вся материально-техническая база будет из того же Китая?

Re: Arduino

Добавлено: 25 апр 2017, 21:23
HTC
Sceapt, свои "фишки" типа, на базе конструктора.

Создается впечатление что заказчику бусы на "писят карат из экологических ракушек" впарили , а исполнитель знает как эти бусы слепить из подручной глины... Но в итоге заказчик заплатит как за стекло, да и исполнитель слепит из того же ....

Забавно,но так и живем.....

Re: Arduino

Добавлено: 25 апр 2017, 21:28
Sceapt
HTC, ну тут вопрос выбора платформы, ардуино отличная платформа для умного дома, но тоже до определенного предела, кто-то ежевику использует, кто-то альтернативные решения.

Re: Arduino

Добавлено: 25 апр 2017, 21:30
neutrino
Sceapt писал(а):neutrino, так а смысл, если вся материально-техническая база будет из того же Китая?
Она у всех из того же Китая. И ничего, делают люди из китайской комплектухи, и никто не расстраивается.

Re: Arduino

Добавлено: 25 апр 2017, 21:36
HTC
:hi_hi_hi:
Было бы над чем ...расстраиваться