Давно есть желание поюзать COM в связке ПК + МК. Здесь буду описывать процесс того как это у меня продвигается. Здесь же выложи схемы и печатки которые буду делать. Хотелось бы реализовать управление 8-ю светодиодами. Т. е. простейшая задача как для LPT порта.
Буду использовать ATmega16 и на ПК програмить на Delphi (и не убеждайте меня перейти на что-то другое). Вначале просимулирую все в Proteus.
http://www.avr123.nm.ru/z5.htm - Примеры организации двусторонней связи через USART MK с исходниками и симуляцией и вывод данных на LCD знакосинтезирующий.
Сразу возник вопрос там в примере в 5-й задаче выбирается кварц 11,059 и скорость обмена данными 115200. Но в протеусе нет такой скорости обмена данными (в терминале). Если я выберу скорость скажем 9600 (или какую лучше?), то нужно ли будет поставить другой кварц?
Последний раз редактировалось Master 02 авг 2007, 23:09, всего редактировалось 1 раз.
Очень правильно что начал с чтения. Будут замечания, вопросы - пиши !
Для снижения скорости обмена наверно лучше изменить настройку USART с помощью мастера CVAVR. Так как изменение частоты кварца (тактирования МК) повлияет на тайминг выполнения других задач если они есть в програме МК.
Симулятор VMALB (он и использован в задаче 5) поддерживает скорость до 250 kbps.
И еще вопрос терминал в Протусе подразумевает, что подключение идет через MAX232 или в принципе можно микросхему тоже поставить? В примерах она не стоит.
Нашел ответ на вопрос о зависимости скорости передачи от кварца. В ДШ в разделе USART Exemples of Baud Rate Settings есть таблица кварцов для каждой из скоростей.
avr123.nm.ru писал(а):И как увиденое компилятору объяснить ? Жестами ?
Ну почему же. Вот я хочу к примеру использовать кварц 16МГц (просто у меня их 5 шт ) и Bаud Rate 19200 (19,2К), т. к. эта скорость есть в Протеусе и она подходит поскольку ошибка менее 1% (точнее 0,2). Я в мастере ставлю кврц 16МГц и Boud Rate 19200. Остальное как в примере к 5-й задаче курса.
Вложения
Последний раз редактировалось Master 03 авг 2007, 02:36, всего редактировалось 1 раз.
Вот мой первый "Hello World", а так же исходники для CVAVR и Proteus. Настройки в CVAVR как в верхнем посте. В Protese главное не забывать устанавливать частоту МК и Bаud Rate в терминале. Я на этом попался. :oops: Все ушел спать, завтра на работу.
Master незабудь заглянуть в тему http://www.roboforum.ru/viewtopic.htm?t=2819 там тоже поднимается вопрос компорта у МК правда там юзается КПК но принципиально разницы никакой, только отличие в языке програмления, там сишник.
Вот осваиваю BComPort библиотека облегчающая работу с протоколом RS-232 под Delphi. Хочу отослать и принять в порт что-нибудь. Кто-нить пользовался этой библиотекой?
Я пользовался. Поковыряйтесь с примером терминала, поставляемым с компонентом, т.к. его очень удобно под себя перестроить. Там, например, есть обработчик нажатия кнопки клавиатуры для компонента Edit1:
procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char); begin if BComPort1.Connected and (Key = #13) then begin BComPort1.WriteStr(Edit1.Text + Key); Edit1.Text := ''; end; end;
Т.е. если нажатая кнопка - Enter, то в порт посылается строка, введенная в Edit плюс код 13.
Т.е. если нажатая кнопка - Enter, то в порт посылается строка, введенная в Edit плюс код 13.
Я так понимаю код 13 это и есть Enter? И что бы что-то получить в порт я должен кинуть перемычку с pin2 на pin3 и тогда в Memo1 появится то что я написал в Edit1? Блин стремно как-то 3 месяца как комп купил. Лучше на работе попробую.