roboforum.ru

Технический форум по робототехнике.
Текущее время: 05 июн 2025, 08:04

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




Начать новую тему Ответить на тему  [ Сообщений: 202 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14  След.
Автор Сообщение
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 23 ноя 2012, 12:26 
Не в сети

Зарегистрирован: 23 апр 2009, 14:12
Сообщения: 106
Откуда: Курская обл.
Не знаю почему, но в данный момент конструкция работает как надо, что это было хз.
Мистика... :)
Sprintf ?
Так у меня уже массив char mas[16];
такой же как я сделаю для LCD char LcdBuffer[16];

подозреваю были глюки :shock:
Дальше интереснее:
С точки зрения оптимизации телодвижений как лучше поступить в данном случае ?
Есть ответы устройства, которые принимаю по USART
Выглядят вот так:
OK
>
NO DATA
>
6A0102F4000000
>

из последнего нужно выкусить вот это "02F4", преобразовать в десятичное и потом поделить, умножить и др.
брать из массива по очереди значения 5-6-7-8 или можно как-то попроще?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 23 ноя 2012, 12:37 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
sscanf, например


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 23 ноя 2012, 17:13 
Не в сети

Зарегистрирован: 23 апр 2009, 14:12
Сообщения: 106
Откуда: Курская обл.
elmot писал(а):
sscanf, например

Можно примерчик ? Чесслово моск сломал.
Что-то правдоподобное получается если использовать
sprintf, printf. Но нюансы как всегда не уловил...

Сделал массив на 4 символа, char massiv_4 [4]; в него перенес нужные данные.
printf("massiv_4 %s\r\n",massiv_4); при вот таком выводе получается нужная строка, но мне нужно десятичное число для последующей обработки
printf("massiv_4 %u\r\n",massiv_4); вот так не получается...точнее получается число, но не то что ожидается:)
Например: в массиве 5-6-7-8
вот в этом случае %s в терминале 5678
а если так %u в терминале 1319
Всяческие попытки преобразовать сначала в строку а потом в число типа sprintf (LcdBuffer,"%s",massiv_4);
безуспешны, получается что угодно, только не 22136.
Я конечно понимаю, что "МК это просто ©" но чтобы настолько :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 23 ноя 2012, 17:44 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Советую все-таки книжку по С(С++ - не трогать!) почитать, а не по МК, особенно раздел про символы, строки и типы данных.

Sun-dey писал(а):
elmot писал(а):
sscanf, например

Можно примерчик ? Чесслово моск сломал.
Что-то правдоподобное получается если использовать
sprintf, printf. Но нюансы как всегда не уловил...

В любой книжке по С есть примеры, переписать что-то оттуда сюда делу не поможет.
Sun-dey писал(а):
Сделал массив на 4 символа, char massiv_4 [4]; в него перенес нужные данные.
printf("massiv_4 %s\r\n",massiv_4); при вот таком выводе получается нужная строка, но мне нужно десятичное число для последующей обработки

Честный вывод строки, все правильно.
Sun-dey писал(а):
printf("massiv_4 %u\r\n",massiv_4); вот так не получается...точнее получается число, но не то что ожидается:)
Например: в массиве 5-6-7-8
вот в этом случае %s в терминале 5678
а если так %u в терминале 1319

В printf во втором аргументе уходит АДРЕС строки. %u - и printf трактует этот адрес как целое число. Волею Аллаха строка лежит по адресу 1319.

Sun-dey писал(а):
Всяческие попытки преобразовать сначала в строку а потом в число типа sprintf (LcdBuffer,"%s",massiv_4);
безуспешны, получается что угодно, только не 22136.
Я конечно понимаю, что "МК это просто ©" но чтобы настолько :lol:

sprintf ни при каких условиях не превращает строку в число. Это ВЫВОД форматированной строки в строковый буффер. Разбирают строки функции scanf(из стандартного ввода),fscanf(из файла),sscanf(из памяти).

Кстати, о птичках. Ни при каких условиях не следует использовать sprintf. Он не следит за границей выходного буфера, велик шанс за эту границу вылезти и заполнить мусором рядом лежащие значения. snprintf - следит за границей, вот его и мучайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 22 мар 2015, 19:16 
Не в сети

Зарегистрирован: 18 мар 2015, 12:24
Сообщения: 13
эволюция есть у проэкта?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 22 мар 2015, 19:41 
Не в сети

Зарегистрирован: 23 апр 2009, 14:12
Сообщения: 106
Откуда: Курская обл.
Да, я же в программировании прокачался немного за это время :D . Научил мерять длительность впрыска, напряжение, свет включать-выключать, менюшку вменяемую сделал. В планах был автозапуск, но до него дело не дошло. Собрал на макетке и всё, нормальную печатку сделать пока негде. Так и не смог победить глюки при отключении релюшки. Вот что получилось https://www.youtube.com/watch?v=3J6Jne3XX7o


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 25 мар 2015, 20:56 
Не в сети

Зарегистрирован: 18 мар 2015, 12:24
Сообщения: 13
а прошивку того, что на видео можно поиметь?
P.S. сейчас сделал с той прошивкой, что в этой теме


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 26 мар 2015, 00:14 
Не в сети

Зарегистрирован: 23 апр 2009, 14:12
Сообщения: 106
Откуда: Курская обл.
Это уже совсем другая поделка. Схемы разные, мега уже 32. Если интересно- могу дать прошивку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 26 мар 2015, 10:01 
Не в сети

Зарегистрирован: 18 мар 2015, 12:24
Сообщения: 13
Конечно интересно! Жду прошивку и схемку.
А пока пару вопросов по тому, что в этой теме.
1. По умолчанию параметр Forsunka стоит 830. Тут нужно выставлять производительность одной форсунки, или всех вместе взятых?
2. По умолчанию параметр Speed стоит 5000. Мне нужно (по предварительным подсчётам) 3000. Две тысячи листать кнопками оооооочень долго. Хотел поменять этот параметр в прошивке. Но компилировать не получилось :(
Строка 34. Ошибка, пишет , что "declaration syntax errors"
interrupt [TIM0_OVF] void timer0_ovf_isr(void){Speed_For_light=0;time++;if (time>10) {time=0;ADCSRA|=0xCB;};};


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 26 мар 2015, 15:01 
Не в сети

Зарегистрирован: 23 апр 2009, 14:12
Сообщения: 106
Откуда: Курская обл.
AndreiPol писал(а):
Конечно интересно! Жду прошивку и схемку.
А пока пару вопросов по тому, что в этой теме.
1. По умолчанию параметр Forsunka стоит 830. Тут нужно выставлять производительность одной форсунки, или всех вместе взятых?
2. По умолчанию параметр Speed стоит 5000. Мне нужно (по предварительным подсчётам) 3000. Две тысячи листать кнопками оооооочень долго. Хотел поменять этот параметр в прошивке. Но компилировать не получилось :(
Строка 34. Ошибка, пишет , что "declaration syntax errors"
interrupt [TIM0_OVF] void timer0_ovf_isr(void){Speed_For_light=0;time++;if (time>10) {time=0;ADCSRA|=0xCB;};};


Что такое 830 точно не помню уже, вроде бы время в мкс, за которое вливается 1мл.
5000 - количество импульсов с датчика скорости на 1 км.
Ошибка при компиляции- не та версия компилятора.
В новой версии я ушёл от 830, теперь задаётся именно производительность в мл/мин.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 26 мар 2015, 15:31 
Не в сети

Зарегистрирован: 18 мар 2015, 12:24
Сообщения: 13
По умолчанию параметр Forsunka стоит 830. Тут нужно выставлять производительность одной форсунки, или всех вместе взятых?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 26 мар 2015, 16:08 
Не в сети

Зарегистрирован: 23 апр 2009, 14:12
Сообщения: 106
Откуда: Курская обл.
99 % что всех :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 27 мар 2015, 19:18 
Не в сети

Зарегистрирован: 18 мар 2015, 12:24
Сообщения: 13
такс, с ошибкой разобрался. в конце точка с запятой лишняя. А что насчёт последней прошивки со схемой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 27 мар 2015, 21:59 
Не в сети

Зарегистрирован: 23 апр 2009, 14:12
Сообщения: 106
Откуда: Курская обл.
Вот текущая версия, если что спрашивай :)


Вложения:
mondeo.0.2 - текущая версия в машине.zip [336.31 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бортовой компьютер на инжектор
СообщениеДобавлено: 28 мар 2015, 09:01 
Не в сети

Зарегистрирован: 18 мар 2015, 12:24
Сообщения: 13
ок!
каково назначение кнопок ГАБ, АСС и той. что + на вход форсунки подаёт?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 202 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14  След.

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


Кто сейчас на конференции

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO