Программирование

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Аватара пользователя
Полосатый
Друг Кота
Сообщения: 3160
Зарегистрирован: Чт мар 26, 2009 04:35:04
Откуда: Москва

Программирование

Сообщение Полосатый »

Решил тут С поизучать (с нуля)...
Цель - написание своей проги для GPS-датчика (обработка NMEA-данных с COM-порта) и программирование микроконтроллеров. Пока такого опыта нет. Подскажите, плиз, куда лучше не наступать ... где там злые собаки и т.д. :) Например, сейчас установил Netbeans, MinGW и прочия отладчики, написал первую прогу на вывод текста, пытаюсь скомпилировать, а gcc пишет, что "нет файла" ... (шшш-ш-ш!!!)
И насколько С универсальный язык для таких задач? Может бейсика хватит визуального?
(программатор - пока EXTRAPIC, спаял из набора)
Изображение (Аль Котоне, кот ещё тот, Cattus Sapiens)
Усы и хвост - мои документы.
Кот - авторитет! Скажет "Мяу!" - не поспоришь. (скажи мне "мяу" и я скажу кто ты)
Реклама
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Re: Программирование

Сообщение ikarab »

Наверно Си для микроконтроллеров подойдет, а для ПК что-то посовременней желательно.
Полосатый писал(а):Может бейсика хватит визуального?
Очевидно ДА.

Наверняка книги вам будут полезны
Библиотека книг для скачивания и чтения.
Реклама
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Для таких целей и этот бейсик подойдёт.
Аватара пользователя
asteroid7
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Re: Программирование

Сообщение asteroid7 »

Полосатый писал(а):Решил тут С поизучать (с нуля)...
Цель - написание своей проги для GPS-датчика (обработка NMEA-данных с COM-порта) и программирование микроконтроллеров. Пока такого опыта нет.
...
Лучше на USB потренироваться, а вот потом к сложным GPS-ам переходить с их протокольными граблями и парсингом текстовых строк.
Моё мнение, Си никогда не был универсальным языком. Его таким планировали сделать. А получилось то, что получилось :)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Полосатый
Друг Кота
Сообщения: 3160
Зарегистрирован: Чт мар 26, 2009 04:35:04
Откуда: Москва

Сообщение Полосатый »

Спасибо за инфу и за ссылки :)
Получается, что вообще на чём хошь можно программировать ... Мне, в принципе, графика пока не нужна, хотя потом может и захочется :)
А те GPS, которые в USB втыкаются, всё равно опосля начинают под COM-порт косить ... может для совместимости с существующими прграммами навигации.
Но не приведёт ли наличие "кучи готовых библиотек" к потере гибкости и к чрезмерной зависимости от их наличия и специализации?
Изображение (Аль Котоне, кот ещё тот, Cattus Sapiens)
Усы и хвост - мои документы.
Кот - авторитет! Скажет "Мяу!" - не поспоришь. (скажи мне "мяу" и я скажу кто ты)
Реклама
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

"Куча готовых библиотек" позволяет разрабатывать прогу за меньшее время и требует меньше знаний.
Реклама
Аватара пользователя
Полосатый
Друг Кота
Сообщения: 3160
Зарегистрирован: Чт мар 26, 2009 04:35:04
Откуда: Москва

Сообщение Полосатый »

Оно понятно, но ведь на С тоже есть библиотеки, например такая:
http://nmea.sourceforge.net/
(причём у них только на С, а sourceforge.net - очень серьёзный ресурс)
Смогу я в библиотеке того же бейсика какую-нить запятую подправить, ежли она меня не устроит? То бишь, насколько оне (эти коды) открытые?

У мя, кстати, есть книжка "Разработка устройств сопряжения", авторы (Новиков, Калашников и Гуляев) тоже примеры на С приводят, и пишут, что многие специалисты считают С лучшим языком для программирования таких устройств, а другие предпочитают ассемблер. Правда это 98 год, может с тех пор что-то кардинально изменилось...
Изображение (Аль Котоне, кот ещё тот, Cattus Sapiens)
Усы и хвост - мои документы.
Кот - авторитет! Скажет "Мяу!" - не поспоришь. (скажи мне "мяу" и я скажу кто ты)
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Смогу я в библиотеке того же бейсика какую-нить запятую подправить, ежли она меня не устроит? То бишь, насколько оне (эти коды) открытые?
на VB незнаю, но в PureBasic'е если не будет исходника библиотеки, то ничего подправить нельзя, т. к. она скомпилирована. Но зачастую в месте с библиотекой идёт исходник.
Дополнительные библиотеки устанавливаются в папку с компилятором и при этом становятся доступными функции этих библиотек. Специально подключать как в Си не нужно :))
Вот список всех имеющийся библиотек дополнительных функций
Правда это 98 год, может с тех пор что-то кардинально изменилось...
Да изменилось.
Если под Win9X можно было работать непосредственно с портом, но в операционных системах на платформе NT (Win2000, XP, виста) этот номер уже не пройдёт, тут надо использовать драйвер, или работать через API функции винды.
К счастью во вмногих системах программирования есть функции для работы с COM портом...
Аватара пользователя
Полосатый
Друг Кота
Сообщения: 3160
Зарегистрирован: Чт мар 26, 2009 04:35:04
Откуда: Москва

Сообщение Полосатый »

Спасибо, полезная информация.
Изображение (Аль Котоне, кот ещё тот, Cattus Sapiens)
Усы и хвост - мои документы.
Кот - авторитет! Скажет "Мяу!" - не поспоришь. (скажи мне "мяу" и я скажу кто ты)
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

Какой бейсик :o :shock: ? Borland C++ Builder!!!
Моё мнение, Си никогда не был универсальным языком.
А чего на нем нельзя сделать??? Для аппаратчика самое то! И синтаксис у него полегче, чем у бейсика...

Про порты: ставите драйвер GiveIO (www.pcports.com) и забываете что вы в XP... Т.е. спокойно лупите по портам на ассемблере!
А C и ассемблер - братья навек...

Учите C!
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Antol.St
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Вт окт 14, 2008 11:29:03
Откуда: Алтайский край, Бийск
Контактная информация:

Сообщение Antol.St »

Моё мнение, Си никогда не был универсальным языком.
+1

Пользуйте Delphi тобишь Object Pascal он намного логичнее, намного легче в изучении чем тотже СИ. А если на микроконтроллёры захотите перийти, то mikroPascal от microelectronica - лучший из Pascal компиляторов для AVR.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

YS писал(а): И синтаксис у него полегче, чем у бейсика...
:shock: Ну да, что ещё придумаете?
С каких это пор синтаксис Си стал легче чем у бейсика?

YS писал(а): Про порты: ставите драйвер GiveIO (www.pcports.com) и забываете что вы в XP... Т.е. спокойно лупите по портам на ассемблере!
Ну зачем так усложнять?!
С COM портом в том числе и виртуальным можно и через API нормально общаться!
Аватара пользователя
Пухич
Модератор
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Так, стоп! Прекратить холивар!

На чем хочет, на том пусть и пишет. И под что либы есть.

По поводу портов - есть АПИ-функции, там все работает. Есть giveio - там тоже все работает, но для USB и PCI это плохая помощь.

ЗЫ: Если уж ведете холивар, так ведите его промеж ЯВУ. Чего вы сравниваете ЯВУ с ассемблером? Тут ЯВУ по определению проиграют.
Знание - сила!
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

Понимаю, что оффтоп, но не могу не ответить:
С каких это пор синтаксис Си стал легче чем у бейсика?
int x сложнее, чем X AS INTEGER???
Моё мнение, Си никогда не был универсальным языком.
Почему же? Мне правда интересно.

А что такое холивар?

А вообще действительно, кому на чем удобнее, тот пусть на том и пишет. Просто я люблю C и assembler, а раньше писал на Pascal :oops: . Кстати, на С перешел именно из-за простоты и мощи синтаксических конструкций.

Все, постараюсь больше не отходить от темы.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

int x сложнее, чем X AS INTEGER???
А при чём тут объявление переменной?
Надо сравнивать куски кода...
Но даже тут Си проигрывает, т. к. переменная объявляется так x.i, но данный тип переменных можно не объявлять, а сразу использовать в коде :)
А что такое холивар?
"Священная война".
Аватара пользователя
asteroid7
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Сообщение asteroid7 »

YS писал(а):... Почему же? Мне правда интересно. ...
Ответил в ЛС.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

А-а-а-а... Понял.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

просто констатация факта:
за 6 лет работы с западными фирмами разрабатывающими электронику + PC интерфейсы.

Embedded code (мк часть) - только на С пишется (я работал как минимум с десятком фирм разного размера). Ни разу не встречал ни одной разработки на чем-то другом (редко ассемблерные вставки есть - но это считается плохим правилом программирования, т.к. не reusable на других платформах).

PC интерфейсы - на чем угодно, но чаще всего либо на VB, VB.NET с dll на С/С++, либо на C++, но с надстройками более высокого уровня типа MFC или ATL, либо в последнее время все чаще идет C# опять же с драйверами на C/C++.

Говорят что пишут интерфейсы и на жаве, но лично никогда с этим не сталкивался.

почему библиотеки пишут на С/С++ - просто очень. возьмем к примеру приложение, реализующее двусторонний протокол обмена между ПК и мк. Так логическая часть протокола пишется на С один раз и вставляется в 2 приложения - для мк и для ПК. экономия времени ровно в 2 раза.

почему интерфейсы чисто на C/C++ не пишутся - полноценную графику для ПК чтобы запрограммировать - на С потребуется времени в 3 раза больше, чем на том же самом С# или C++ с MFC.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Сообщение YS »

Для промышленных разработок может и удобно код для МК писать на C, однако для домашних ИМХО лучше всего подойдет ассемблер. Нет ни одного компилятора с языка высокого уровня, который создавал бы действительно оптимальный код. А вобще все зависит от сложности программы. ИМХО писать бегущие огоньки на C - изврат такой же, как и декодер mp3 на ассемблере :) .

Я пока делаю так: под контроллер пишу на асме, под ПК - на С/C++ (разумеется, в среде быстрой разработки, чтобы сама окошки рисовала, типа C++ Builder). Мне хватает. :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Redisych
Прорезались зубы
Сообщения: 207
Зарегистрирован: Пн сен 04, 2006 00:16:07
Контактная информация:

Сообщение Redisych »

Я тут немного изучал вопрос, выбирая язык для обучения, пришёл к выводу, что C++. Ну, учитывая, что скриптовыми типа Basic, FoxPro, AutoIT худо-бедно владею.
Pascal академический язык, хотелось бы его знать, но почему-то не нашёл самоучителя, который бы мне хотелось почитать. Наверно, расчитано всё на систему образования, что для меня несколько моветон.
Delphi был бомбой, но перспектива очень туманная, популярность резко упала в последнее время. C# IMHO очередной заскок Microsoft, чтобы перекроить рынок под себя. Вот ни с того ни с сего откажутся от поддержки платформы .NET и ппц. Кстати, как там в Висте, VB работает? Какие-то проблемы вроде уже есть...
Классический С хорош, но это процедурный язык.
C++ уже ООП, к тому же кросплатформенный. Не особо популярен среди мэйнстрима, но и не собирается сдавать позиции. Т.е. перспективен в любом случае.
Ответить

Вернуться в «Интеграция с ПК»