Например TDA7294

Форум РадиоКот • Просмотр темы - Конвертация символов Ардуино.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт янв 01, 2026 01:22:45

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 49 ]    , 2,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 14:30:41 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Вот тут я присваиваю все вхощие символы к "inByte"
Но не работает. В общем костыль не удался... а как вообще нужно сделать чтобы по человечачьи было?

1) не все а один
2) "по человечачьи" можно поискать:
http://qaru.site/questions/83751/conver ... ng-arduino


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 15:47:28 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Самый простой вариант
Спойлер
Код:
  char len;   //счетчик числа символов в команде

        ch1 = getchar(); // получаем символ из потока ввода
       
        if(ch1 == 'c' && len == 0){
         len++;
        }
        if(ch1 == 'l' && len == 1){
         len++;
        }     
        if(ch1 == 's' && len == 2){
         len++;
        }
        if(ch1 == 0x0D && len == 3){  //  клавиша Enter
         len= 0;
         // выполнить очистку экрана ну или чего там надо
        }
        if(ch1 == 0x1B){  //  клавиша Esc сброс счетчиак числа символов в команде
         len= 0;
        } 
Т. е. перед отправкой команды нажать клавишу ESC.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 15:54:22 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7059
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
а чего по неугадыванию знака лен не сбрасываете? у вас он сработает и в том случае, если между знаками команды будут и другие буквы... например: coleso "enter" выполнит очистку :)

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 16:34:51 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Действительно.
Изменим
Спойлер
Код:
char len;   //счетчик числа символов в команде
char len_2;

        ch1 = getchar(); // получаем символ из потока ввода
        len_2++;
       
        if(ch1 == 'c' && len == 0 && len_2 == 1){
         len++;
        }
        if(ch1 == 'l' && len == 1 && len_2 == 2){
         len++;
        }     
        if(ch1 == 's' && len == 2 && len_2 == 3){
         len++;
        }
        if(ch1 == 0x0D && len == 3 && len_2 == 4){ //  клавиша Enter
         // выполнить очистку
         len=0;len_2=0;
        }
        if(ch1 == 0x1B){  // клавиша Esc сброс счетчиак числа символов в команде
         len= 0; len_2=0;
        } 
А теперь какова вероятность?
А по идее, без всякого дополнительного кода, после cls должен быть отправлен "enter", тогда Бейсик выполнит команду очистки, он либо "enter" не жмет, либо...


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 16:45:22 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Alex, конструкция подобного вида не компилится у меня, я синтаксис не пойму:
А я Вас не пойму.
Вы прямым текстом задаёте вопрос : "Как сравнить 2 строки ?". Вам дают ответ. И Вы, тут же, пишите вот такое :
if(strcmp(inByte, "CLS"){

Где логика в Вами написанной строке кода, в которой присутствует байт (ну или символ, иными словами) , в то время, когда в Вашем вопросе о нём и речи не было ? :dont_know:

Вам нужно сначала принять строку (ссылку на простой вариант для абдурины дали чуть выше), а потом уже её сравнивать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 17:10:59 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Аlex писал(а):
Где логика в Вами написанной строке кода
А он ее, логику, просто не видит.

spikepavel писал(а):
А так пишу на HTML.
spikepavel вам задание, создайте алгоритм:
одно поле EditText, и два поля Label,
в первом Label должены отображаться вводимые в EditText символы,
а во втором Label отобразится только после комбинации символов CLS"enter".
То ест вам нужно просто напросто написать свой алгоритм поля password.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 19:11:32 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15336
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
ГЫММ...
протокол обмена по RS232 хорош при межкомпьютерной связи... асинхронный радиоканал... оптика/ультразвук...
А для внутрисхемных приложений (в пределах одной платы, между разными СБИС в пределах устройства)
предпочтительно как минимум или SPI или I2C - и быстрее и возможность приостановки обмена в критических интервалах.
:roll:


Последний раз редактировалось BOB51 Вт май 22, 2018 12:31:15, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Пн май 21, 2018 21:02:09 
Открыл глаза

Зарегистрирован: Пт апр 08, 2016 10:09:03
Сообщений: 73
Рейтинг сообщения: 0
Это по HTML:
var text = "ABSBDABSDBCLS DSADAD ASDA CLS";
var need = "CLS";

if(text.indexOf(need) != -1){
$("out_check").html("Найдено" + CLS);
}
Для .ХТМЛ нужен Джейквери еще.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Вт май 22, 2018 11:58:53 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
spikepavel писал(а):
Это по HTML:
Нет, вы отслеживаете строку, а надо каждый символ.
К примеру где-то так


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 01:12:49 
Открыл глаза

Зарегистрирован: Пт апр 08, 2016 10:09:03
Сообщений: 73
Рейтинг сообщения: 0
В общем так у меня и не вышло довести до ума сравнение строк/символов между ардуинами).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 01:38:43 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Значит 2 страницы обсуждения, с кучей советов от пользователей - напрасны. Печалька... :(
Мораль. Прежде, чем взяться за что-нибудь и пойти на форум с вопросами, стоит задаться вопросом - "А моё ли это ?". Дабы не тратить ни своего времени, ни чужого...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 05:04:29 
Открыл глаза

Зарегистрирован: Пт апр 08, 2016 10:09:03
Сообщений: 73
Рейтинг сообщения: 0
Да не, не напрасно. Данные мне тут "знания" уже пригодились в другом деле.
А теперь снова по этой теме:
Данные идут с первой платы по Serial.write(c) :
size_t write(uint8_t);
size_t write(const char *str);
size_t write(const uint8_t *buffer, size_t size);

На второй плате они принимаются.
Если я вставляю в код вот такую конструкцию от dimon456:
char len; //счетчик числа символов в команде
char len_2;

ch1 = getchar(); // получаем символ из потока ввода
len_2++;

if(ch1 == 'c' && len == 0 && len_2 == 1){
len++;
}
if(ch1 == 'l' && len == 1 && len_2 == 2){
len++;
}
if(ch1 == 's' && len == 2 && len_2 == 3){
len++;
}
if(ch1 == 0x0D && len == 3 && len_2 == 4){ // клавиша Enter
VGA.clear();
len=0;len_2=0;
}
if(ch1 == 0x1B){ // клавиша Esc сброс счетчиак числа символов в команде
len= 0; len_2=0;
}

То 2 варианта развития....вариант 1 он делает очистку бесконечно со старта в loop'e.....вариант 2 он никак не реагирует на CLS и следом нажатый интер.

Вот сам основной код. Может я не туда его вставляю. inByte заменяю в коде на ch1 :
void setup() {
Serial1.begin(9600);
VGA.begin(320, 240, VGA_COLOUR);
VGA.setInk(16);
}

void loop() {
if(Serial1.available()) {
int inByte = Serial1.read();

if(inByte==27){ // клавиша ESC
VGA.clear();
VGA.moveCursor(0, 0);}
else VGA.write(inByte); }

}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 07:36:19 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Заведите буфер и принимайте строку в него. По символу 0x0D (или '\n') заканчивайте приём строки и делайте сравнение.
Всё просто, как 5 копеек.
На другой вариант приёма сроки, который ещё проще (хотя куда уже ?!), давали ссылку чуть выше.

PS: Вы хоть читайте сообщения, что-ли. Да по ссылкам проходите, которые вам дают...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 09:04:41 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7059
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Если ему делать с буфером - то 1) этот буфер надо заполнять чтобы отделить "зерна от плевел" -> будут траблы при выводе текста
2) надо решить вопрос о длине буфера.
лучше пусть посимвольно сравнивает (как тут уже предлагали - со счётчиками) раз ему прямой вывод текста важен.
ПС: я бы делал конструкции со спецсимволом, с которого начинаются команды и не парился...

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 09:50:12 
Первый раз сказал Мяу!

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Пт мар 07, 2014 18:37:20
Сообщений: 38
Откуда: Пермь
Рейтинг сообщения: 0
подход какой-то не системный. Ну ладно CLS не работает, а другие операторы бейсика связанные с экраном работают? Например установить курсор в определенную позицию, нарисовать точку, линию, окружность?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 11:32:06 
Открыл глаза

Зарегистрирован: Пт апр 08, 2016 10:09:03
Сообщений: 73
Рейтинг сообщения: 0
Их нет в самом бейсике. Сигналы должна ловить вторая плата, на которой уже крутится VGA библиотека. Если реализовывать графику+звук+операционку на одной плате, то все работает норм, но скорость работы ужасно медленная. А вот если разнести, то уже нет. Нажатия 1 клавиши или отправку одного символа я ловлю. А если символов больше одного или клавиш, то никак. Я никак не могу понять как ловить нужные мне куски текста(команд) на другой плате. Люди помогают, спасибо им, но что делать я так и не понял в итоге. Как бы я не сравнивал, то запуск нужной мне функции не выходит. Будем копать дальше).

Добавлено after 39 seconds:
Проблемы именно при попытке связать разные платы...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 11:43:39 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7059
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
ПС: я бы делал конструкции со спецсимволом, с которого начинаются команды и не парился...
плата работает в обычном (твоем текстовом режиме) пока не поймает символ начала команды (этот символ не должен встречаться в обычном выводе текста), как поймала - вместо отправки на дисплей начинает складывать байты в буфер и складывает, пока или одна из команд не сойдётся или пока буфер не кончится (его длина должна быть равной длине самой длинной команды)... если буфер кончился, а команда ни одна не сошлась - вываливаем содержимое на дисплей как текст...
вариант, конечно, не совсем, но, пожалуй, самый простой

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 13:04:00 
Первый раз сказал Мяу!

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Пт мар 07, 2014 18:37:20
Сообщений: 38
Откуда: Пермь
Рейтинг сообщения: 0
Их нет в самом бейсике.


Проблема в этом. Если бейсик открытый и в нем есть возможность расширения, то Вам надо самому реализовать эти операторы , а какое у вас железо бейсику все равно, хоть графопостроитель. Какой протокол Вы выберете при обмене этих подпрограмм реализующих операторы зависит только от Вас. Можно использовать например команды ANSI терминала, можно что-нибудь свое.

Не пойму, почему Вы пытаетесь что-то поймать с ввода с клавиатуры. Представьте себе такую ситуацию, когда запущенная программа на бейсике крутится часами, что-то рисует на экране, очищает его, опять рисует. При этом никто ни какие кнопки на клавиатуре не нажимает и "CLS" не вводит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 13:09:37 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15336
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Вот и "всплыла" необходимость в определении ПРОТОКОЛА ОБМЕНА ДАННЫМИ между двумя устройствами.
8)
А что принять за таковой - взять какой-нибудь стандартный или придумать свой вариант - это и есть ТВОРЧЕСКАЯ ЗАДАЧА, решаемая САМИМ автором конструкции.
:write:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Конвертация символов Ардуино.
СообщениеДобавлено: Чт май 24, 2018 17:58:14 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
spikepavel
Спойлер
Код:
char len; //счетчик числа символов в команде
char len_2;

void setup() {
Serial1.begin(9600);
VGA.begin(320, 240, VGA_COLOUR);
VGA.setInk(16);
}

void loop() {
if(Serial1.available()) {
int inByte = Serial1.read();

len_2++;

if((inByte == 'c'||inByte == 'C') && len == 0 && len_2 == 1){
len++;
}
if((inByte == 'l'||inByte == 'L') && len == 1 && len_2 == 2){
len++;
}
if((inByte == 's'||inByte == 'S') && len == 2 && len_2 == 3){
len++;
}
if(inByte == 13 && len == 3 && len_2 == 4){ // клавиша Enter
VGA.clear(); VGA.moveCursor(0,0);
len=0;len_2=0;
}
if(inByte == 13 || inByte==27){ // клавиша Enter или клавиша Esc сброс счетчика числа символов в команде
len= 0; len_2=0;
}
if(inByte==27){ // клавиша ESC
VGA.clear();
VGA.moveCursor(0, 0);
}

VGA.write(inByte); }


Добавлено after 4 minutes 34 seconds:
Да и мой HTML.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 49 ]    , 2,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y