|
Виж темите без отговор | Виж активните теми
Дата и час: Пет Авг 21, 2026 9:07 am
Комуникация PIC->PC през RS232 порт
| Автор |
Съобщение |
|
i_dachev
Ранг: Новодошъл
Регистриран на: Вто Ное 16, 2004 3:29 pm Мнения: 108 Местоположение: София
|
Според мен трябва да търсиш решение на проблема за езика, на който програмираш.
В нета има за абсолютно всички езици, готови компоненти за работа и с RS232 и с
паралелния.
Имам и на Java (то си е пак на C/C++ за Windows/Linux но пък пишеш само на Java)
и на C/C++ за Windows ако ти се отдава някои от тези езици драсни едно ЛС да ти пратя кода.
|
| Съб Окт 13, 2007 7:19 pm |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
Моето мнение, повлияно от моя опит, е:
Делфи 5 + Win32 API + Threads
Много стабилно става. 1во Win32API-то не е толкова сложно когато става дума за ком портове. Няколко функции се ползват. Нишките са много важни с цел да не забива интерфейса. Предполагам че всякаквите third party компоненти работят точно така но export-ват event-и за целта. Разучаването и настройването на такъв компонент би отнело толкова или повече време от това да си ползваш своя разработка.
Поздрави!
|
| Чет Окт 18, 2007 6:22 pm |
|
 |
|
\__
Ранг: Минаващ
Регистриран на: Пет Сеп 21, 2007 1:51 pm Мнения: 5 Местоположение: Варна
|
 Free Borland C++ Compiler
Моята препоръка е Free Borland C++ Compiler
По принцип използвам VisualStudio като текстов редактор, че ми оцветява хубаво кода и ми подсказва функциите. Но накрая го компилирам със C++ Builder (ето линк: http://www.codegear.com/downloads/free/cppbuilder)
Това ми гарантира, че полученото ехе работи на всички бози от 98 до Vista, за разлика от компилатора на студиото, който ползва и библиотеки, които ги има само от XP нагоре, че и Service Pack-ове иска.
Ето един елементарен код за работа с COM-а
 |  |  |  | Код: #include <windows.h> #include <stdio.h> int main(void) { HANDLE hCom; COMMTIMEOUTS to; DCB dcb; BYTE ComBYTE; DWORD dwBytesRead; hCom = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if (hCom == INVALID_HANDLE_VALUE) return 0; if (!GetCommState(hCom, &dcb)) { CloseHandle(hCom); return 0; } dcb.BaudRate = CBR_9600; // set the baud rate dcb.ByteSize = 8; // data size, xmit, and rcv dcb.Parity = NOPARITY; // no parity bit dcb.StopBits = ONESTOPBIT; // one stop bit dcb.fOutxCtsFlow = FALSE; //TRUE; if (!SetCommState(hCom, &dcb)) { CloseHandle(hCom); return 0; } to.ReadIntervalTimeout= 0; to.ReadTotalTimeoutConstant= 200; to.ReadTotalTimeoutMultiplier= 0; to.WriteTotalTimeoutConstant= 20000; to.WriteTotalTimeoutMultiplier= 0; if(!SetCommTimeouts(hCom, &to)) { CloseHandle(hCom); return 0; } while(TRUE) { if(ReadFile(hCom, &ComBYTE, 1, &dwBytesRead, NULL)) if(dwBytesRead == 1) printf("%c",ComBYTE); } } |  |  |  |  |
Копилира се с
E:\Borland>bcc32 comtest.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
comtest.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
|
| Нед Окт 21, 2007 2:35 pm |
|
 |
|
Yanek
Ранг: Новодошъл
Регистриран на: Пет Юни 29, 2007 10:59 pm Мнения: 113
|
Щото пак се върнахме към темата, съгласен съм, че фреймуърка е малко бозав, но за версия 1.1. Обаче хич не съм съгласен, че ще пишеш повече. Като се замисля обаче май е по-подхоящо на Delphi, поне в началото. Между другото докъде си със задачката?
|
| Нед Окт 21, 2007 5:42 pm |
|
 |
|
the_electronic_m@n
Ранг: Минаващ
Регистриран на: Пет Окт 05, 2007 8:34 pm Мнения: 76 Местоположение: Русе
|
Ами, "до под кривата круша". PIC контролерите и програмирането им са ми ясни, но с компютърното програмиране положението е зле. Задачката не е спешна, вапроса е че занапред ще се ползват комуникации с компютър и затова пуснах темата. Може да се счита, че съм абсолютно начинаещ в компютърното програмиране и търся съвет от къде да започна!? Delphi ли да уча, Visual C++, C++??? Някакъв линк за начинаещи....
|
| Нед Окт 21, 2007 6:45 pm |
|
 |
|
Yanek
Ранг: Новодошъл
Регистриран на: Пет Юни 29, 2007 10:59 pm Мнения: 113
|
Трудно е да се отговори еднозначно на въпроса какво да учиш. Вероятно ще започнеш с един, ще се прехвърлиш на друг и т.н. ти сам ще се спреш на най-интуитивния за теб. А какво означава "да учиш". Ако е до синтаксис не е необходимо много време. Или до библиотеки? Съмнявам се, че дори сред съставителите на тези библиотеки има човек който да ги знае изцяло. А и те се учат с течение на времето. В крайна сметка установих за себе си, че първото най-важно нещо е да си наясно с ООП. Щото едно от трудните неща в началото е да отделиш обекта с възможно най-малки взаимовръзки с други такива. После да намериш най-добрия начин да го опишеш(хем го четкаш, хем и му приписваш неща дето не може да прави). Пък едва после да се обърнеш към езика за да разбереш структурата на една програма и "инструментариума" за да създадеш горното.
Все пак за начало пробвай с Delphi. Не искам да те раздвоявам, но напоследък все по-често в Embedded проектите си използвам С++. 
|
| Пон Окт 22, 2007 6:56 pm |
|
 |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
Няма такъв език вижуал С++, това е името на средата, иначе езикът си е С++.
|
| Пон Окт 22, 2007 8:20 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Стига сте го сукали  Delphi е средата за начинащи, и това съвсем не е недостатък
|
| Вто Окт 23, 2007 7:45 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6107
|
.....Delphi е среда и за много напреднали :D - стига да го разбираш по правилния начин
|
| Вто Окт 23, 2007 11:07 am |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Ами според мен С/С++, сравнително интуитивен е има доста литерутра за него на български, а пък в интернет е пълно. Според мен С е единствения език, ефективен както за PC програмиране така и за ембедед
EDIT: Наистина малко преувеличих като казах, че е единствен, но е от малкото такива езици.
Последна промяна sv_shady на Вто Окт 23, 2007 8:15 pm, променена общо 1 път
|
| Вто Окт 23, 2007 4:55 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6107
|
sv_shady - голям залък лапни - голяма дума не казвай.....
|
| Вто Окт 23, 2007 7:18 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
Стана ми интересно - кои други езици освен "Ц" се скалират ефективно върху широката гама от архитектури и не са просто академична демонстрация?
|
| Сря Окт 24, 2007 4:00 am |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
Съгласен. До сега не съм видял неща които да се правят на C а да не могат на Делфи. Между другото на Делфи имах някъде и сорс за драйвер!
В много голяма степен разликата е синтаксис. Имаш ли мисленето - другото се научава.
|
| Чет Окт 25, 2007 8:10 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|