Страница 1 из 4
Программирование
Добавлено: Чт мар 26, 2009 15:40:57
Полосатый
Решил тут С поизучать (с нуля)...
Цель - написание своей проги для GPS-датчика (обработка NMEA-данных с COM-порта) и программирование микроконтроллеров. Пока такого опыта нет. Подскажите, плиз, куда лучше не наступать ... где там злые собаки и т.д.

Например, сейчас установил Netbeans, MinGW и прочия отладчики, написал первую прогу на вывод текста, пытаюсь скомпилировать, а gcc пишет, что "нет файла" ... (шшш-ш-ш!!!)
И насколько С универсальный язык для таких задач? Может бейсика хватит визуального?
(программатор - пока EXTRAPIC, спаял из набора)
Re: Программирование
Добавлено: Чт мар 26, 2009 16:18:02
ikarab
Наверно Си для микроконтроллеров подойдет, а для ПК что-то посовременней желательно.
Полосатый писал(а):Может бейсика хватит визуального?
Очевидно ДА.
Наверняка книги вам будут полезны
Библиотека книг для скачивания и чтения.
Добавлено: Чт мар 26, 2009 16:34:04
PB_EXPERT
Для таких целей и
этот бейсик подойдёт.
Re: Программирование
Добавлено: Чт мар 26, 2009 20:52:24
asteroid7
Полосатый писал(а):Решил тут С поизучать (с нуля)...
Цель - написание своей проги для GPS-датчика (обработка NMEA-данных с COM-порта) и программирование микроконтроллеров. Пока такого опыта нет.
...
Лучше на USB потренироваться, а вот потом к сложным GPS-ам переходить с их протокольными граблями и парсингом текстовых строк.
Моё мнение, Си никогда не был универсальным языком. Его таким планировали сделать. А получилось то, что получилось

Добавлено: Пт мар 27, 2009 00:21:25
Полосатый
Спасибо за инфу и за ссылки

Получается, что вообще на чём хошь можно программировать ... Мне, в принципе, графика пока не нужна, хотя потом может и захочется

А те GPS, которые в USB втыкаются, всё равно опосля начинают под COM-порт косить ... может для совместимости с существующими прграммами навигации.
Но не приведёт ли наличие "кучи готовых библиотек" к потере гибкости и к чрезмерной зависимости от их наличия и специализации?
Добавлено: Пт мар 27, 2009 09:18:26
PB_EXPERT
"Куча готовых библиотек" позволяет разрабатывать прогу за меньшее время и требует меньше знаний.
Добавлено: Пт мар 27, 2009 16:21:55
Полосатый
Оно понятно, но ведь на С тоже есть библиотеки, например такая:
http://nmea.sourceforge.net/
(причём у них только на С, а sourceforge.net - очень серьёзный ресурс)
Смогу я в библиотеке того же бейсика какую-нить запятую подправить, ежли она меня не устроит? То бишь, насколько оне (эти коды) открытые?
У мя, кстати, есть книжка "Разработка устройств сопряжения", авторы (Новиков, Калашников и Гуляев) тоже примеры на С приводят, и пишут, что многие специалисты считают С лучшим языком для программирования таких устройств, а другие предпочитают ассемблер. Правда это 98 год, может с тех пор что-то кардинально изменилось...
Добавлено: Пт мар 27, 2009 17:24:59
PB_EXPERT
Смогу я в библиотеке того же бейсика какую-нить запятую подправить, ежли она меня не устроит? То бишь, насколько оне (эти коды) открытые?
на VB незнаю, но в PureBasic'е если не будет исходника библиотеки, то ничего подправить нельзя, т. к. она скомпилирована. Но зачастую в месте с библиотекой идёт исходник.
Дополнительные библиотеки устанавливаются в папку с компилятором и при этом становятся доступными функции этих библиотек. Специально подключать как в Си не нужно
Вот список всех имеющийся библиотек дополнительных функций
Правда это 98 год, может с тех пор что-то кардинально изменилось...
Да изменилось.
Если под Win9X можно было работать непосредственно с портом, но в операционных системах на платформе NT (Win2000, XP, виста) этот номер уже не пройдёт, тут надо использовать драйвер, или работать через API функции винды.
К счастью во вмногих системах программирования есть функции для работы с COM портом...
Добавлено: Вс мар 29, 2009 06:40:13
Полосатый
Спасибо, полезная информация.
Добавлено: Ср май 27, 2009 14:30:50
YS
Какой бейсик

? Borland C++ Builder!!!
Моё мнение, Си никогда не был универсальным языком.
А чего на нем нельзя сделать??? Для аппаратчика самое то! И синтаксис у него полегче, чем у бейсика...
Про порты: ставите драйвер GiveIO (
www.pcports.com) и забываете что вы в XP... Т.е. спокойно лупите по портам на ассемблере!
А C и ассемблер - братья навек...
Учите C!
Добавлено: Ср май 27, 2009 14:51:23
Antol.St
Моё мнение, Си никогда не был универсальным языком.
+1
Пользуйте Delphi тобишь Object Pascal он намного логичнее, намного легче в изучении чем тотже СИ. А если на микроконтроллёры захотите перийти, то mikroPascal от microelectronica - лучший из Pascal компиляторов для AVR.
Добавлено: Ср май 27, 2009 15:12:18
PB_EXPERT
YS писал(а): И синтаксис у него полегче, чем у бейсика...

Ну да, что ещё придумаете?
С каких это пор синтаксис Си стал легче чем у бейсика?
YS писал(а): Про порты: ставите драйвер GiveIO (
www.pcports.com) и забываете что вы в XP... Т.е. спокойно лупите по портам на ассемблере!
Ну зачем так усложнять?!
С COM портом в том числе и виртуальным можно и через API нормально общаться!
Добавлено: Ср май 27, 2009 15:58:23
Пухич
Так, стоп! Прекратить холивар!
На чем хочет, на том пусть и пишет. И под что либы есть.
По поводу портов - есть АПИ-функции, там все работает. Есть giveio - там тоже все работает, но для USB и PCI это плохая помощь.
ЗЫ: Если уж ведете холивар, так ведите его промеж ЯВУ. Чего вы сравниваете ЯВУ с ассемблером? Тут ЯВУ по определению проиграют.
Добавлено: Ср май 27, 2009 17:09:05
YS
Понимаю, что оффтоп, но не могу не ответить:
С каких это пор синтаксис Си стал легче чем у бейсика?
int x сложнее, чем X AS INTEGER???
Моё мнение, Си никогда не был универсальным языком.
Почему же? Мне правда интересно.
А что такое
холивар?
А вообще действительно, кому на чем удобнее, тот пусть на том и пишет. Просто я люблю C и assembler, а раньше писал на Pascal

. Кстати, на С перешел именно из-за простоты и мощи синтаксических конструкций.
Все, постараюсь больше не отходить от темы.
Добавлено: Ср май 27, 2009 17:43:49
PB_EXPERT
int x сложнее, чем X AS INTEGER???
А при чём тут объявление переменной?
Надо сравнивать куски кода...
Но даже тут Си проигрывает, т. к. переменная объявляется так
x.i, но данный тип переменных можно не объявлять, а сразу использовать в коде
А что такое холивар?
"Священная война".
Добавлено: Ср май 27, 2009 19:37:06
asteroid7
YS писал(а):... Почему же? Мне правда интересно. ...
Ответил в ЛС.
Добавлено: Ср май 27, 2009 20:12:41
YS
А-а-а-а... Понял.
Добавлено: Чт май 28, 2009 00:48:54
xelos
просто констатация факта:
за 6 лет работы с западными фирмами разрабатывающими электронику + PC интерфейсы.
Embedded code (мк часть) - только на С пишется (я работал как минимум с десятком фирм разного размера). Ни разу не встречал ни одной разработки на чем-то другом (редко ассемблерные вставки есть - но это считается плохим правилом программирования, т.к. не reusable на других платформах).
PC интерфейсы - на чем угодно, но чаще всего либо на VB, VB.NET с dll на С/С++, либо на C++, но с надстройками более высокого уровня типа MFC или ATL, либо в последнее время все чаще идет C# опять же с драйверами на C/C++.
Говорят что пишут интерфейсы и на жаве, но лично никогда с этим не сталкивался.
почему библиотеки пишут на С/С++ - просто очень. возьмем к примеру приложение, реализующее двусторонний протокол обмена между ПК и мк. Так логическая часть протокола пишется на С один раз и вставляется в 2 приложения - для мк и для ПК. экономия времени ровно в 2 раза.
почему интерфейсы чисто на C/C++ не пишутся - полноценную графику для ПК чтобы запрограммировать - на С потребуется времени в 3 раза больше, чем на том же самом С# или C++ с MFC.
Добавлено: Чт май 28, 2009 11:24:51
YS
Для промышленных разработок может и удобно код для МК писать на C, однако для домашних ИМХО лучше всего подойдет ассемблер. Нет ни одного компилятора с языка высокого уровня, который создавал бы действительно оптимальный код. А вобще все зависит от сложности программы. ИМХО писать бегущие огоньки на C - изврат такой же, как и декодер mp3 на ассемблере

.
Я пока делаю так: под контроллер пишу на асме, под ПК - на С/C++ (разумеется, в среде быстрой разработки, чтобы сама окошки рисовала, типа C++ Builder). Мне хватает.

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