Brat4791, Вы же сами понимаете, что не работать тут нечему. В нормальной ситуации Ваш пример вполне себе успешно выдаёт Hello.
Значит есть ещё какой-то нестандартный фактор. Не крутили чего-нибудь с настройками com-портов в винде? С какими-нибудь языковыми настройками, шрифтами консоли? Попробуйте эти ардуинки на другом компе. Проблему, как уже писали выше, только опытным путём локализовать можно, отсекая всё по очереди. Из серии танцев с бубнами можно попробовать при заданной скорости в скетче поперебирать скорости в мониторе. И да, плата точно не wavgat какой-нибудь?
Не нужно про датчик. Если у Вас проблемы с монитором порта, то и приводите код, в котором нет ничего кроме работы с монитором порта.
Сократите свой пример и выложите здесь его скетч и то, что он выводит в монитор порта.
Ошибку надо искать, отсекая все лишнее. В данном случае лишнее - это работа с датчиком.
Если же окажется, что сконструировать пример, демонстрирующий ошибку, без датчика не получится, то велика вероятность, что Ваш предварительный диагноз не подтвердился, и проблема на самом деле не с монитором, а с датчиком.
Brat4791 пишет:
ни один скейч связанный с терминалом не работает
так же заливал скейч с примеров чисто для монитора порта
все так же остается кракозябры
char i[]="\110\145\154\154\157"; // Определяем строку из 5 кодов символов "Hello". Символ конца строки добавляется автоматически.
void setup(){ //
Serial.begin(9600); // Инициируем работу шины UART на скорости 9600 бит/сек.
Serial.println(i); // Отправляем строку в монитор последовательного порта.
} //
void loop(){ //
} //
1. Brat4791, я Вам дважды писал (в сообщениях №40 и №47), что приводить надо и скетч и то, что выводится в монитор. Где?
2. Откуда взялась эта странная строка кодов? Вы сами хоть понимаете, что комментарии к первой строке совершенно не соответствуют действительности? Эта строка и должна выводить "кракозябры".
2. Откуда взялась эта странная строка кодов? Вы сами хоть понимаете, что комментарии к первой строке совершенно не соответствуют действительности? Эта строка и должна выводить "кракозябры".
Нет, это действительно Hello записанное восьмеричным кодом. Но зачем?
2. Откуда взялась эта странная строка кодов? Вы сами хоть понимаете, что комментарии к первой строке совершенно не соответствуют действительности? Эта строка и должна выводить "кракозябры".
Нет, это действительно Hello записанное восьмеричным кодом. Но зачем?
Ну, значит, я плохо знаю Си. Я почему-то считал, что в Си числа в восьмеричном коде записываются с ведущим нулем.
PS. Проверил в VC - действительно Hello. Пошел учить Си...(((
Может не надо учить? Может сначала нолики перед числами поставить и проверить?
Учить как раз надо.
Выяснилось, что число должно быть не просто восмеричным, но обязательно трехзначным внезависимости от того, будет там ведущий ноль или нет. Что, впрочем, логично: строка \12345 понимается как char(oct123),'4','5', а строка \012345 - как строка char(oct12),'3','4','5'.
"Восьмеричная escape-последовательность — это обратная косая черта, за которой следует последовательность из одной до трех восьмеричных цифр. Восьмеричная escape-последовательность завершается на первом символе, который не является восьмеричной цифрой, если он встречается раньше, чем третья цифра. Наибольшее возможное восьмеричное значение — \377 ."
char i[]="\110\145\154\154\157"; // Определяем строку из 5 кодов символов "Hello". Символ конца строки добавляется автоматически.
Это в какой кодировке ?
покажите что выведет - Serial.println("Hello world");
брал из примера ардуины
вот что монитор выдал
а просмотр в 16-ричном виде есть в мониторе ?
а просмотр в 16-ричном виде есть в мониторе ?
нет ни каких настроек
Так что там на выводе при Serial.println("01234 Hello world 56789");
Brat4791, Вы же сами понимаете, что не работать тут нечему. В нормальной ситуации Ваш пример вполне себе успешно выдаёт Hello.
Значит есть ещё какой-то нестандартный фактор. Не крутили чего-нибудь с настройками com-портов в винде? С какими-нибудь языковыми настройками, шрифтами консоли? Попробуйте эти ардуинки на другом компе. Проблему, как уже писали выше, только опытным путём локализовать можно, отсекая всё по очереди. Из серии танцев с бубнами можно попробовать при заданной скорости в скетче поперебирать скорости в мониторе. И да, плата точно не wavgat какой-нибудь?
Не нужно про датчик. Если у Вас проблемы с монитором порта, то и приводите код, в котором нет ничего кроме работы с монитором порта.
Сократите свой пример и выложите здесь его скетч и то, что он выводит в монитор порта.
Ошибку надо искать, отсекая все лишнее. В данном случае лишнее - это работа с датчиком.
Если же окажется, что сконструировать пример, демонстрирующий ошибку, без датчика не получится, то велика вероятность, что Ваш предварительный диагноз не подтвердился, и проблема на самом деле не с монитором, а с датчиком.
ни один скейч связанный с терминалом не работает
так же заливал скейч с примеров чисто для монитора порта
все так же остается кракозябры
1. Brat4791, я Вам дважды писал (в сообщениях №40 и №47), что приводить надо и скетч и то, что выводится в монитор. Где?
2. Откуда взялась эта странная строка кодов? Вы сами хоть понимаете, что комментарии к первой строке совершенно не соответствуют действительности? Эта строка и должна выводить "кракозябры".
2. Откуда взялась эта странная строка кодов? Вы сами хоть понимаете, что комментарии к первой строке совершенно не соответствуют действительности? Эта строка и должна выводить "кракозябры".
Нет, это действительно Hello записанное восьмеричным кодом. Но зачем?
2. Откуда взялась эта странная строка кодов? Вы сами хоть понимаете, что комментарии к первой строке совершенно не соответствуют действительности? Эта строка и должна выводить "кракозябры".
Нет, это действительно Hello записанное восьмеричным кодом. Но зачем?
Ну, значит, я плохо знаю Си. Я почему-то считал, что в Си числа в восьмеричном коде записываются с ведущим нулем.
PS. Проверил в VC - действительно Hello. Пошел учить Си...(((
Может не надо учить? Может сначала нолики перед числами поставить и проверить? Скомпилил, дизассемблировал, стоку в elf не нашёл. Что за дела?
А то как догадываться, что именно Вы подразумеваете под словом "кракозябры".
уже бы давно развернул portable версию в новую папку, добавил бы туда папку portable и пример попробовал
nik182
7c: ea eb ldi r30, 0xBA ; 186
Спасибо
с ноликами из hex 48656C6C6F
без ноликов из нех 48656C6C6F
Да. Надо действительно учить снова....
Может не надо учить? Может сначала нолики перед числами поставить и проверить?
Учить как раз надо.
Выяснилось, что число должно быть не просто восмеричным, но обязательно трехзначным внезависимости от того, будет там ведущий ноль или нет. Что, впрочем, логично: строка \12345 понимается как char(oct123),'4','5', а строка \012345 - как строка char(oct12),'3','4','5'.
Учить как раз надо.
Выяснилось, что число должно быть не просто восмеричным, но обязательно трехзначным...
Не обязательно. Даже однозначным, если следующая не символьная восьмеричная цифра.
"Восьмеричная escape-последовательность — это обратная косая черта, за которой следует последовательность из одной до трех восьмеричных цифр. Восьмеричная escape-последовательность завершается на первом символе, который не является восьмеричной цифрой, если он встречается раньше, чем третья цифра. Наибольшее возможное восьмеричное значение —
\377
."Вот такая вот фигня: что ни напишешь - все равно откомпилируется. Хотя и совсем не то, что хотел. К вопросу, почему я не люблю Си.