|
AVR и ПК, Обмен данными по RS232 |
|
|
|
Oct 16 2007, 03:21
|
Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 1-03-06
Пользователь №: 14 835

|
Цитата Непомнящий Евгений Я так понимаю, что Вы некогда не сталкивались с моей задачей. Отсюда и Цитата Не понимаю, какие проблемы...... Пррочитал по последней ссылке. "tyro" спасибо. Буду разбираться. Но информации много не бывает. Интересно посмотреть на чей-нибудь проект.
|
|
|
|
|
Oct 16 2007, 04:51
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(GSK @ Oct 16 2007, 07:21)  Я так понимаю, что Вы некогда не сталкивались с моей задачей. C вашей - скорее всего нет  Но с компьютером чем-нибудь обмениваюсь постоянно... Цитата Интересно посмотреть на чей-нибудь проект. У меня они довольно наворочены и специфичны, вырезать лишнее лень. Дык а собственно что вам не понятно в моем предыдущем объяснении?
|
|
|
|
|
Oct 16 2007, 06:13
|

Любитель Кошек
    
Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873

|
Цитата(GSK @ Oct 16 2007, 08:32)  Да в обьяснении все понятно. Спасибо за помощь. Но теория это одно, а практика совсем другое. Вот книжки, где кое-что есть Применение микроконтроллеров AVR. Схемы, алгоритмы, программы (Баранов В.Н.). Кузьминов А.Ю. Интерфейс RS232. Связь между компьютером и микроконтроллером. - М. Радио и связь, 2004. - 168 с ил.
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Oct 16 2007, 08:30
|
Группа: Новичок
Сообщений: 5
Регистрация: 25-09-07
Пользователь №: 30 828

|
Цитата(IEC @ Oct 16 2007, 10:57)  Хорошо работать когда PC выступает в роли ведущего, а МК в роли ведомого. В обратном случае необходимо PC вешать в режим ожидания, что сильно его клинит, если работать через API. Ничего подобного. Ожидание события на порту в API нормально реализовано. Или синхронно читайте с настроенной COMMTIMEOUTS.
|
|
|
|
|
Oct 16 2007, 08:58
|

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

|
Цитата(GSK @ Oct 15 2007, 22:16)  А вот когда пытаюсь передовать строки или даже просто слова по присходит какая-то ерунда. Да и вообще с алгоритмом что-то не получаеться, как-то коряво выходит. Наверняка используете стандартные функции компилятора типа getstring() или putstring()  Используйте прерывания, как в этом небольшом примере, но это не проект, а просто тест. Таймаут проверяйте тоже через прерывания таймера. И конечно лучше прочитать описание кокого-нибудь стандартного протокола, типа modbus. МК для исходника-2313.
Сообщение отредактировал Axxel - Oct 16 2007, 09:00
Прикрепленные файлы
232.rar ( 1.59 килобайт )
Кол-во скачиваний: 98
--------------------
Если боишься - не говори. если сказал - не бойся. ©
|
|
|
|
|
Nov 29 2007, 15:35
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата Как бороться с ошибками? Ошибка в ответе: мастер повторяет посылку N раз, после чего считает, что нет связи и как-то это обрабатывает. Ошибка в запросе: подчиненный игнорирует весь запрос. Цитата как считать контрольные суммы? Да любой алгоритм. CRC-16 к примеру. Цитата какую скорость выбрать для меньшей ошибки рассогласования частот? если с компьютером по нормальному шнурку - 115200 вполне нормально. Если RS-485 и большие расстояния - 4800. Где-то видел табличку с предельными скоростями в зависимости от типа и длины кабеля. Цитата какой протокол обмена? и т.д. Простейший протокол: М(астер)->В(едомый): STX Команда Данные ETX CRCL CRCH В->М STX Команда Данные ETX CRCL CRCH Данные могут отсутствовать. В качестве CRC можно взять CRC-16. Не хотите заморачиваться - просто сумму по модулю. Судя по вашему начальному сообщению, вам он вполне подойдет.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|