 |
|
|
|
| Автор |
Сообщение |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 13 Апр 2007, 15:29 Заголовок сообщения: Программа - обмен с микроконтроллером по ком-порту |
|
|
Программа - обмен с микроконтроллером по ком-порту. Через время, заданное таймером, выдается стробирующий байт и затем - прием 2 байтов с микроконтроллера в комп и выдача суммы чисел на форму.
Екзешник в папке reliz.
Исправил 2 бага предыдущей версии
1. при закрытии программы не кнопкой "выход", а крестиком вверху - ком-порт не закрывался.
2. Установил тайм - аут на прием байтов от контроллера - если устройства нет (не отвечает) или количество принятых байтов не соответствует ожидаемому, порт закрывается с сообщением ( не нужно 3 кнопок).
По- прежнему даю полный проект в visual 6 , чтобы программу можно было легко изменить для своих целей.
| Описание: |
|
 Файлообменник |
| Название файла: |
grad.rar |
| Размер файла: |
44.82 KB |
| Скачено: |
187 раз(а) |
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн)
Последний раз редактировалось: urry (17 Апр 2007, 10:18), всего редактировалось 2 раз(а) |
|
| Вернуться к началу |
|
 |
mega_max Частый гость (>5)

Зарегистрирован: 05.04.2007 Сообщения: 8
|
Добавлено: 13 Апр 2007, 21:55 Заголовок сообщения: |
|
|
| Блин...упертый препод, сказал что ему ЛПТ ивсё...сказл по лпт нужно на выбор взять два сигнала или один, например готовность бумаги или еще что то в этом духе...не знаю что делать...я в этом не понимаю((((((
|
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 14 Апр 2007, 0:17 Заголовок сообщения: |
|
|
ну сволочь препод.... я как чувствовал, раз за 2 часа сделал, значит, точно не пойдет.. еще на ноуте тестил.. ладно, проехали.
Значит, юмор какой - в проге нужно делать ассемблерные вставки, в начале запрещаем прерыванме.Готовность бумаги - о чем он говорил- связана с другим регистром, не суть.. Главное синхронизация по скорости, чтобы на разных компах выдача и прием была за один интервал времени.И что-то я такого нигде не видел...
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
AndryG Модератор
Зарегистрирован: 24.07.2006 Сообщения: 411 Откуда: Helios-3
|
Добавлено: 14 Апр 2007, 7:49 Заголовок сообщения: |
|
|
А почему бы не применить протокол типа того, что я написал? Реализация то простая ... главное научится под WIN32 с LPT портом работать... а может препода устроит программа, работающая под ДОС?
_________________ AndryG |
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 15 Апр 2007, 9:11 Заголовок сообщения: |
|
|
to mega_max
Прочитал личку. Боюсь, Вы обратились не к тому волшебнику. Главная проблема - LPT порт. Тот фокус, который я предложил - сделать ассемблерную вставку и напрямую обращаться к порту - прошел бы в 98 винде, а 2к или хп - физически это заблокирует. На самом деле это действительно большая проблема, явно выходящая за пределы курсовой. Единственная (!) прога, которую я видел, что она действительно корректно работает в 2к\хп с этим портом - это айси-прог. Ну может, мне так не повезло в жизни. В форумах по ремонту стоит стон - старые добрые программаторы, прошивающие микросхемы в 98 винде, отказываются работать в хп. А 98 винду на новых компах уже физически не поставишь - нет поддержки производителей материнок. Это лирическое отступление. Что можно сделать ? Вариант - пристрелить преподавателя - я не рассматриваю...
Попробуйте обратиться к зубрам на исходниках ру - что они скажут ? Вот нужно ввести инфу из порта... Самостоятельно писать драйвер на порт - что-то это предложение не греет...
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
dimonbest Частый гость (>5)

Зарегистрирован: 12.04.2007 Сообщения: 14
|
Добавлено: 15 Апр 2007, 12:55 Заголовок сообщения: |
|
|
| Есть такая програмка, называется PORTOPEN , она открывает порты в windows xp и 2000, можно с ней попробывать
|
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 17 Апр 2007, 10:23 Заголовок сообщения: |
|
|
Доработал программу обмена с микроконтроллером по ком- порту. Тем, кто уже успел скачать предыдущую версию -
прочитать пост о багах.
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
AndryG Модератор
Зарегистрирован: 24.07.2006 Сообщения: 411 Откуда: Helios-3
|
Добавлено: 17 Апр 2007, 10:36 Заголовок сообщения: |
|
|
Как вариант .. могу посоветовать автору ветки посмореть в сторону программатора AVReal - он успешно работает под Win32 ... посмотрите в Сети используемый там драйвер ... можно и к автору AVReal обратится с корректным и скромным вопросом ... Хотя у него на сайте есть ссылка на полный комплект и драйвера и документации и примеров... дерзайте.
_________________ AndryG |
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 18 Апр 2007, 14:23 Заголовок сообщения: |
|
|
Учитывая настойчивые просьбы автора ветки, выкладываю его проект в части, касающейся микроконтроллера.
Поскольку никогда !!!! в своей жизни не писал для АВР, вряд ли заработает в железе. В протеусе, правда, работает.
Итак - состав - микроконтроллер 90 2313, ттл микросхема с открытым коллектором - аналог нашей ла8 - для развязки мк и лпт порта, а также для согласования градусника ds18b20 - он дешевле - (каким это боком касается проекта, не знаю - скорее инерция), и наконец сам градусник.
Итак - в главном цикле идет непрерывное измерение температуры - первые 2 байта. Почему именно 2 байта - в даташите написано. Затем я округляю результат до полградуса, суммируя в 1 регистр - Т3.
При поступлении импульса синхронизации с лпт порта, главный цикл программы прерывается и происходит выдача этого числа Т3 в последовательном коде на вход лпт порта - на каждый строб по биту - за 8 стробирующих импульсов выдается вся эта радость, причем длительность не имеет особого значения. Захлопывать информацию с лпт порта в комп нужно по спаду - по снятию стробирующего импульса.
На картинке видно, как выдается число 0х5С - это 46 градусов, переведенное в шестнадцатеричный код, умноженное на 2. Головкой - старшими разрядами вперед. Почему умноженное на 2 - потому что младший разряд и есть полградуса.5Д - было бы 46 с половиной.
| Описание: |
|
 Файлообменник |
| Название файла: |
grad.rar |
| Размер файла: |
227.58 KB |
| Скачено: |
2671 раз(а) |
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
AndryG Модератор
Зарегистрирован: 24.07.2006 Сообщения: 411 Откуда: Helios-3
|
Добавлено: 18 Апр 2007, 16:42 Заголовок сообщения: |
|
|
И ни одной библиотечной функции -- специально для преподавателя !
mega_max, Вы должны быть в курсе, что этот компилятор имеет встроенные библиотеки с функциями как для задержек, так для работы с 1-wire
urry, научите пользоваться лог. анализатором proteus никогда не нужен был, а интересно.
_________________ AndryG |
|
| Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять вложения в этом форуме Вы можете просматривать вложения в этом форуме
|
|