|
Управление прибором на AVR через COM-port компьютера, нужна помощь |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 23)
|
Apr 4 2008, 05:13
|
Участник

Группа: Новичок
Сообщений: 23
Регистрация: 24-03-08
Пользователь №: 36 189

|
Цитата(sysel @ Apr 4 2008, 10:40)  Работа с портом(ReadFile, WriteFile) должна осуществляться только в том потоке, который открыл этот порт (CreateFile). Это еще почему? Можно открыть в одном потоке, а читать в другом. Единственное, что нельзя делать - одновременно пытаться работать в двух разных потоках.
|
|
|
|
|
Apr 4 2008, 06:11
|

Частый гость
 
Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896

|
Цитата(smk @ Apr 4 2008, 02:44)  Это у всех так? Помогите разобраться. Заранее спасибо! Если у вас установлен компонент от Dejan (TComPort) то в ридми файле, там написано, что нужно закомментировать пару строчек в заголовочниках.
--------------------
Если боишься - не говори. если сказал - не бойся. ©
|
|
|
|
|
Apr 4 2008, 11:01
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-07-07
Пользователь №: 29 364

|
Цитата(smk @ Apr 3 2008, 23:44)  Пробую создать программу для управления прибором с помощью ПК. Програму пишу в среде C++ Builder 6. Подключил библиотеку ComPort. Собственно по ней и вопрос. А в теме по AVR потому что девайс на AVR и еще потому что не знаю куда еще можно. Сам вопрос: Вынося на поле Form1 любую из кнопок-компонент при попытке компиляции получаю для строки /* Exception.CreateRes */ inline __fastcall EComPort(int Ident)/* overload */ : Sysutils::Exception(Ident) { } сообщение об ошибке: [C++ Error] CPort.hpp(683): E2238 Multiple declaration for '_fastcall EComPort::EComPort(int)' а для строки: __fastcall EComPort(int ACode); сообщение об ошибке:[C++ Error] CPort.hpp(675): E2344 Earlier declaration of '_fastcall EComPort::EComPort(int)'
также для строки: typedef TBitmap TLedBitmap; сообщение об ошибке: [C++ Error] CPortCtl.hpp(242): E2015 Ambiguity between 'TBitmap' and 'Windows::TBitmap'
Это у всех так? Помогите разобраться. Заранее спасибо! Зайдите на http://www.pcports.ru/Может там найдете что нибудь.
|
|
|
|
|
Apr 10 2008, 01:56
|

Частый гость
 
Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896

|
пункт 7, C++ Builder notes файл прикрепил.
Прикрепленные файлы
readme.txt ( 11.1 килобайт )
Кол-во скачиваний: 654
--------------------
Если боишься - не говори. если сказал - не бойся. ©
|
|
|
|
|
Apr 10 2008, 05:51
|
Группа: Новичок
Сообщений: 2
Регистрация: 24-09-04
Пользователь №: 714

|
Попробуй этот класс. Я его часто использую с AVR в Visual C++ 6.0 - все нормально работает.
|
|
|
|
|
Apr 10 2008, 18:34
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата использую с AVR в Visual C++ 6.0 интересует для C++ Builder 6.0 7. C++ Builder Notes ------------------------------------------------------------------------------ The .hpp file C++ Builder creates for cport.pas will have a bug in it. The first time you compile a project, you will get one or two duplicate definitions within the EComPort exception class. It seems to be safe to delete or comment out the duplicates. Also, the CPortCtl.HPP may have a bug in it. If you get an error about the following being ambiguous; typedef TBitmap TLedBitmap; Change it to: typedef Graphics::TBitmap TLedBitmap; If someone knows how to fix these more cleanly, please post what you find to the CPort Forum so that we can incorporate your findings in future revisions. Если четно, то с английским не настолько хорошо чтоб быть уверенным в правильности своих действий. Если можно, то подскажите что и как. Спасибо! Я закомментировал строчки, на которые указал компилятор. Начал компилировать... теперь надо как-то проверить работоспособность...
Сообщение отредактировал smk - Apr 10 2008, 18:50
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Apr 12 2008, 17:39
|
Участник

Группа: Свой
Сообщений: 37
Регистрация: 13-05-07
Из: Minsk, Belarus
Пользователь №: 27 694

|
Цитата(gena_dj @ Apr 4 2008, 08:13)  Это еще почему? Можно открыть в одном потоке, а читать в другом.
Единственное, что нельзя делать - одновременно пытаться работать в двух разных потоках. Можно работать не только в разных потоках, но и в разных процессах при применении некоторой эквилибристики. Естественно, механизмы синхронизации никто не отменял.
|
|
|
|
|
Apr 14 2008, 02:03
|

Частый гость
 
Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896

|
Цитата(smk @ Apr 12 2008, 01:41)  А есть ли у Вас какойнить примерчик? Есть один корявенький.... пользуйтесь
Сообщение отредактировал Axxel - Apr 14 2008, 02:04
Прикрепленные файлы
Unit1.rar ( 1.12 килобайт )
Кол-во скачиваний: 116
--------------------
Если боишься - не говори. если сказал - не бойся. ©
|
|
|
|
|
Apr 15 2008, 01:50
|

Частый гость
 
Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896

|
Ну это как напишите, а как принято-изучайте стандартные протоколы  Ну к примеру если протокол master-slave, то запрос от мастера-ответ подчиненного.
Сообщение отредактировал Axxel - Apr 15 2008, 02:20
--------------------
Если боишься - не говори. если сказал - не бойся. ©
|
|
|
|
|
Apr 24 2008, 02:35
|

Частый гость
 
Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896

|
Начни с изучения ДШ на МК в плате, разберись как подключать нагрузку к портам, напиши программку для мигания диодом для начала. Затем прочитай про принцип динамической индикации... и.т.д. Хоть и ругают "общеизвестный курс", но для того чтобы написать программку мигания, собрать программатор, и понять в общих чертах, как программируется контроллер на С, можно его почитать (авр123.ру)  (потом все равно тебя поправят) Вопросы-то КОНКРЕТНЫЕ задавать нужно, начни с простого, здесь тебе все равно помогут. А "Актуально"-это извини, совсем не вопрос  P.S. Я кстати тоже чайник-любитель
Сообщение отредактировал Axxel - Apr 24 2008, 02:39
--------------------
Если боишься - не говори. если сказал - не бойся. ©
|
|
|
|
|
Apr 26 2008, 16:54
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 20-02-08
Пользователь №: 35 217

|
Пробуй(изучай) WinAPI. То есть не всякие библиотеки. Суть- запускаешь процесс, в котором постоянно(в цикле)проверяшь, а не принято ли что-нибудь, в нем же и отпрвляешь в случае необходимости.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|