Atmega64

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

эээ... а можно поподробнее про этот компанент! Пытался его установить, но ничего не получилось! Расскажите как его на билдер поставить!
Реклама
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Atmega64

Сообщение Vov123 »

какой Builder ?
Реклама
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

С++ Builder 6
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Atmega64

Сообщение Vov123 »

Скопируй папку с компонентом,чтобы не потерять,к примеру "Program Files->Borland" и далее

Component->Instal Component->Browse->(Тип файлов:.*pas)->BComPort->BCPort.pas->OK->YES->OK

File->Exit->No->Yes


Компонент во вкладке "Samples"
Реклама
Эиком - электронные компоненты и радиодетали
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

Поставить получилось! Но вот может я дурак, а может нет хз :) При попытки вытащить из ComboBox название порта и присвоить его соответствующему свойсву компанента вылазит вот это:

[Linker Error] Unresolved external '__fastcall Bcport::TBComPort::SetPortA(const System::AnsiString)' referenced from E:\RS232\НОВАЯ ПАПКА\UNIT1.OBJ

Код вот:
Вариант №1
AnsiString port;
port = ComboBox1->Text;
BComPort1->Port = port;

Вариант №2
BComPort1->Port = ComboBox1->Text;
Реклама
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Atmega64

Сообщение Vov123 »

В программе самое главное перебор всевозможных портов или связь девайса с компом?Связь по одному порту удалось наладить?
Реклама
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

Так. Победил вот такие вещи:

Открытие порта:
BComPort1->Open();

Закрытие порта:
BComPort1->Close();

Чтение с порта:
String Str;
PAsync Stat;
int n;
InitAsync(Stat);
BComPort1->ReadStrAsync(Str,Count,Stat);
BComPort1->IsAsyncCompleted(Stat);
n=BComPort1->WaitForAsync(Stat);
DoneAsync(Stat);
Memo1->Lines->Add(Str);

А вот запись пока не получается, так же как и программный выбор COM порта! :(
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Atmega64

Сообщение Vov123 »

Ещё вопрос-оно сильно нужно асинхронный опрос порта?Зачем строить себе сложности.Приём обычный,синхронный режим работы по событию OnRxChar,передача по таймеру.
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

По большому счету всеравно каким способом будет передаваться инфа. Главное чтобы программа не сильно грузила комп (под устройсво выделен старенький копьютер) и возможность выбора COM порта. У меня получилось сделать прием данных с COM порта, а отправку осилить не могу. В спавке, компонента который порекомендовал Vov123, нету примера кода отправки данных. Если кто знает как реализовать на этом компаненте отправку данных, прошу помочь!(кинуть код) :)
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Atmega64

Сообщение Vov123 »

Как пример

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
AnsiString a;
a = "Привет";
BComPort1->WriteStr(a);

}

Да,не подумал,может переменную надо отправлять

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
unsigned char a;
a = 255;
BComPort1->Write(&a,1);

И ещё добавлю-паниковать надо когда полный п..ц,раньше не стоит.
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

Спасибо! Прием и отправка работает! :) Итересно, а почему выбор порта программно не катит?! :)
Vov123 писал(а):И ещё добавлю-паниковать надо когда полный п..ц,раньше не стоит.
:) Я это запомню!
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Atmega64

Сообщение Vov123 »

AnsiString b ;
b = "COM" + Edit1->Text;
BComPort1->Port.operator =(b) ;
BComPort1->Open();
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

А в Edit1 предпологается писать только номер порта или полное имя например "COM1"?
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Atmega64

Сообщение Vov123 »

из текста видно,что только циферку.Но если надо по другому,то кто остановит программиста? :)))
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

Ура!!!! Спасибо!!!! :))
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

Вопрос по амеге64... Заню что в ней есть область памяти, где даные могут храниться даже если отключить питание МК. Но как в нее писать данные? Например у меня есть двумерный массив data[15][5], в него с ПК загружаются данные, с негоже по запросу даные выводятся в ПК, но если обесточить МК даные теряются и приходится заново их вбивать. Как сделать этот массив постоянно хранимым? :) (пробывал объявлять его через flash int data[15][5], но ничего не получилось)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Atmega64

Сообщение Jack_A »

H5Grey писал(а):Вопрос по амеге64... Заню что в ней есть область памяти, где даные могут храниться даже если отключить питание МК.
Это называется EEPROM. Я для МК на 'С' не пишу, но думаю, что там в библиотеках д.быть подпрограмма работы с EEPROM. На асме это - десяток строк.
А если эти данные неизменные ( например, калибровочные коэффициенты для данного экземпляра прибора, для другого - другие ), то можно хранить и во флеш-памяти программ.
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

С железом разобрался... спайл программатор на FT232RL, оно же является переходником USB-UART... все работает хорошо... вот только когда на компе принимаю данные своей программой, посылки иногда рвуться...
Например:
МК отправляет строку&<1,12,23,43,2,$
В основном моя программа принимает строку как надо, но иногда строка рвется... начало приходит одной посылкой, конец другой... Всебы ничего, но для программы важно обрабатывать пасылку целеком...
Для приема сообщений с COM порта сначало использовал стороний компонент, потом перешёл на стандартные средства билдера, однако оба варианта дают один и тот же результат... Возможно я что-то не учел... где-то ошибся... помогите! :))
H5Grey
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 17, 2011 15:51:49

Re: Atmega64

Сообщение H5Grey »

:)) Уважаемые знатоки! Внимание вопрос! (Сам вопрос чуть выше :)) )
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»