ATmega32 вывод информации через COM порт

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

Помогите пожалуйста сделать простенькую программу на Delphi.
С тремя светодиодами.Есть микроконтроллер ATmega32 я его прошил,он у меня измеряет напряжение.
Пример:
--------------------------------------------------------------------------------
Напряжение: от 0 Вольт до 1.5 - Минимальный режим
(В Программе горит желтая лампочка и пишется Минимальный режим)
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Напряжение: от 1.5 Вольт до 2.5 - Нормальный режим
(В Программе горит зеленая лампочка и пишется Нормальный режим)
---------------------------------------------------------------------------------

---------------------------------------------------------------------------------
Напряжение: от 3 Вольт до 5 - Максимальный режим
(В Программе горит зеленая лампочка и пишется Максимальный режим)
---------------------------------------------------------------------------------

В микроконтроллере ATmega32 есть Com порт,хочу чтоб от туда поступала вся информация по Com порту на Компьютер.как это сделать помоги пожалуйста! :oops:
Изображение
Реклама
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Сообщение Vov123 »

Почему на Delphi?На VB6 новичку гораздо проще.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

В общем так , Коты - программисты : нужен человек, который напишет простенькую программу под XP, которая принимает данные из COM порта компьютера (как терминал) и обрабатывает их по простому алгоритму :
(данные -1 байт информации, по-сути, даже байта не надо
в контроллере все обрабатывается и без этого, но для простоты возьмем байт.)
_______________
|__данные:___|_____информация на форме:_______|
|_____$01____|_____"Минимальный режим", горит желтый примитив__|
|_____$02____|_____"Номинальный режим", горит зеленый примитив__|
|_____$04____|_____"Максимальный режим", горит красный примитив_|


вот и все что нужно. три условия и прием данных.
кто может помочь? не сложно ведь?! ....
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср мар 25, 2009 15:57:59
Откуда: Тула

Сообщение Александр777 »

Советую почитать статью Работа с СОМ-портом в Windows (W9x, W2k) http://www.delphikingdom.com/asp/viewit ... logid=1126
Там же можно скачать и библиотеку для работы с COM портом на Delphi.

Обработчик принятых байт будет примерно таким:

Код: Выделить всё

procedure TForm1.RecivBytes(var Msg : TMessage);
var
  Ch : char;
  p : pointer;
begin
  p := Pointer(Msg.WParam);
   S := '';
While Byte(p^)<>0 do
begin
  Ch := Chr(Byte(p^));
  inc(integer(p));
end;
case Ch of
  'y': ProcedureYellow();
  'g': ProcedureGreen();
  'r': ProcedureRed();
end;

end;
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Программа в архиве.
Она написана на языке PureBasic
Версия компилятора - 4.30
Она считывает данные из порта каждые 100 мс., так что чаще слать инфу не следует.
Контроллер должет слать инфу со скоростью 9600 бод, числом бит - 8, и одним стоповым битом.
Работать будет с любым портом (с виртуальный тоже) и в любой ОСи из семейства Windows.
Программа не требует инсталяции не нуждается ни в каких внешних файлах, кроме имеющихся в системе.
При необходимости можно что-то изменить и заново перекомпилировать. Для этого подойдёт даже ,бесплатная демо-верся PureBasic 4.30
Вложения
CON_IN.rar
Исходник и скомпилированый файл.
(14.38 КБ) 396 скачиваний
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

PB_EXPERT писал(а):Программа в архиве.
респект тебе чувак! спасибо огромное, главное программа проста как 2х2, а выполняет очень нужную функцию)
Реклама
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

Большое спасибо чувак!!!! :)
Прорезались зубы
Аватара пользователя
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

А вот компонента для Delphi AsyncFree
http://sourceforge.net/project/showfile ... _id=130401

На ней можно построить любую прогу для работы с COM портом. И не только принимать данные но и ихать в него
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

как я понимаю это библиотеки для делфи и паскаля?
Прорезались зубы
Аватара пользователя
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Да. Точно. Но и по Borland C++ тоже будет работать. А вот еще программа для доступа к микроконтроллерным устройствам http://revich.lib.ru/comcom.zip там же есть и хелп. Устанавливать ничего не надо. Принятые данные отображаются тремя различными способами hex, dec , text. Ну вобщем разберетесь...
Мучитель микросхем
Аватара пользователя
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль

Сообщение nictrace »

Не нужно забывать о согласовании уровней между МК и портом.

Богатые и счастливые могут пользоваться max232, остальным рекомендую такую схему:
Изображение
транзисторы - кт361 и кт315
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Контактная информация:
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

Вот принципиальная схема моего микроконтроллера:
(от МастерКита)
Изображение[/url]
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

там уже есть MAX232IN
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

А можно узнать у господ чем им так нравятся бэйсики и паскали?)))
Есть например C#. Очень простой. Полностью объектный. Главное что на нем можно делать программы любой сложности и намного более качественные.
Это не в упрек кому-либо - просто мне интересно, что так нравится людям в этих пакетах?
Контактная информация:
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

Для меня С+ пока сложнее понять.На бейсике легче работать.
Я в программировании только новичок.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

BCluster писал(а):А можно узнать у господ чем им так нравятся бэйсики и паскали?)))
Есть например C#.
вы говорите о программировании для AVR или под XP?))))
те библиотеки (о котрых я говорил выше) используются для программирования Win приложений. в СИ также будет какая то библиотека для обращения к КОМ порту, либо то, о чем вы говорите "очень простой.полностью объектный" сводится на нет.
в XP как многие знают, обращение к портам ввода/вывода стало проблематичной задачей.
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

ibiza11 понимаете в чем дело... С# работает на .net framework... А там есть классы на все случаи жизни. Для работы с ком-портом SerialPort например. И не надо искать никаких библиотек.

Плюс я говорил про Си не из-за библиотек - а из-за того, что в этом языке, в его синтаксисе есть куча удобнейших инструментов, да и просто синтаксис удобный.

А я заметил, что среди радиолюбителей оч. популярны продукты от Borland и бэйсик.
Вот и не могу понять почему. Да и чем так нравится тот же кривой C++Builder?
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

все это дело вкуса. кого как учили, кому как понятнее, то и будет использовать. меня учили только VB и Basic.... и еще в универе.... стыдно говорить - Fortran. я понимаю что есть куча книжек по программированию на разных языках программирования, но пока не было особой необходимости.
лично я при программировании МК использую только Асм. Люблю делать качественно и для себя, с пониманием процесса. Изучение СИ конечно есть в планах в будущем, т.к. это быстро и удобно (хотя я понятия не имею что такое "классы" :oops: ).

в данном случае в теме стоит вопрос о конкретном действии, которое необходимо получить от программы, которое понадобится сейчас, скоро. Сейчас не важно на каком языке написан исходник, лишь бы работал с COM портом.
хотя во многом я согласен с вашим мнением. СИ универсален и доступен для понимания.
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

А я вот давно не пишу на асме (: только маленькие участи кода, где это короче чем на Си. Просто я понял что результат тот же, только секаса с асмом больше.
Объясню почему я так критично отношусь к другим языкам программирования. Дело в том, что в школе я учил паскаль. Потом неприятно было переучиваться снова на Си. Поэтому считаю

Насчет классов - в Си нет ни классов ни объектов. Он процедурный.
Объектное программирование появилось в c++, c#. Также нет объектов в обычном паскале и в обычном бэйсике.

Все дело в том насколько это все нужно. Мне вот приходится писать приложения для Win32, и никакого прикола в написании на бэйсике нет )
Хотя у M$ есть Visual Basic .NET. Многие пользуют. Мне не нравится.

А вообще учите С - пригодится. И C# тоже учите. Для win32 будете писать приложения очень быстро
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Как сказал ibiza11 - на asm писать, значит понимать процесс. И многие книги по МК написаны для Ассемблера - типа для новичков. Тому кто не хочет влезать в мозговые дебри МК можно смело приступать к Си.
Я когда пришел на свою работу мог только на Бейсике что-то написать, но мне вручили чей-то проект на Turbo Pascal и хочешь не хочешь пришлось его изучать - тем более окружение коллег было сопутствующем. Всегда кто-то подскажет, поможет. Думаю у многих такое было. Каждый выбирает именно тот язык по которому есть либо хорошая книга или хороший консультант. Со временем с Turbo прешел на Delphi, стало намного проще, приложения писались быстро.
В МК все обстоит все гораздо сложнее. На Си не могу писать так как после паскаля он мне глаза режет своим синтаксисом. И мне не так важно написать саму программу как понять что же происходит внутри МК. Но и Асм пока для меня сложноват, но зато он не пересекается с Паскалем и путаницы в голове меньше. Может когда нибудь я начну писать для МК и на Си. Согласен - CAVR своим генератором кода намного экономит время - но за кадром остается очень многое ( а для новичка это важно) К примеру та же работа с LCD. На Си - раз плюнуть. А на Асм придется немного попариться - но процесс открытие и понятнее.
Так что пишите на чем хотите и можете. Цель все равно одна! Это как ездить на разных машинах, с левым или правым рулем, на легковых или грузовых. Идея то одна а способов много.
Закрыто

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