Страница 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
опять штырит, но в другом месте
Re: Arduino
Добавлено: 24 апр 2017, 19:18
Академик Иосиф
я уже молчу про функцию переноса по словам с прокруткой
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
Академик Иосиф
О, а это работает. Благодарю. Вот теперь со спокойной душой можно пилить перенос по словам.
Вот только почему то обратный слеш пропал
Re: Arduino
Добавлено: 24 апр 2017, 19:38
neutrino
Академик Иосиф писал(а):О, а это работает. Благодарю. Вот теперь со спокойной душой можно пилить перенос по словам.
Вот только почему то обратный слеш пропал
По-хорошему должен работать и предыдущий вариант, либо линкер обязан выдать ошибку выделения памяти.
Каким компилятором пользуешься?
Re: Arduino
Добавлено: 24 апр 2017, 19:39
neutrino
Академик Иосиф писал(а):
Вот только почему то обратный слеш пропал
Обратный слэш на С выглядит так: '\\', то есть их два. Попробуй.
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
Было бы над чем ...расстраиваться