реклама на сайте
подробности

 
 
> Soft RS-232, Ещё два UARTa. Програмно.
viktor4152
сообщение Nov 18 2008, 17:21
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Всем доброго времени суток.
Есть такая задумка, может кто чего посоветует.
Существует канал Компьютер=(RS-232)=Радиомодем------Радиомодем=(RS-232)=аппарат1.
Скорость обмена - 9600. (8N1)
Рядом с аппаратом1 стоит аппарат2 и может связываться с пультом дистанционного управления по тому же RS-232 с той же скоростью, через тот же радиомодем. Так вот, суть проблемы. Как можно эти 2 канала RS-232 объеденить в один, и пустить их по одному радиоканалу, пусть даже с увеличением скорости обмена ло 19200? Естественно но противоположном конце их потом нужно как-то разделить. Одним словом, как можно организовать два полноценных канала связи RS-232 через один канал на радиомодемах?
Есть задумка поставить Tiny2313, аппаратный UART будет работать на радиомодем 19200 (9N1), а через INT0 и INT1 отрабатывать прерывания по спаду (Приёмные линии програмных UARTов). Если принял байт от INT1, например, то последний бит в аппаратный UART устанавливать, и наоборот. На том конце также просто отделить. Весь пит-стоп в том, что не знаю, как мне предупредить одновременную передачу запроса с аппарата1 и ответа с аппарата2. И наоборот.
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 35)
AHTOXA
сообщение Nov 18 2008, 17:51
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Можно сделать в лоб: платку с тремя UART, два на устройства, третий (на учетверённой скорости) - на модем. Платка всё, что принимает от устройств, валит в модем. И наоборот. В канале модема идут пары байтов - номер канала - байт из канала. Как-то так. Ну или байт-стаффинг сделать (это лучше), тогда скорость нужна только чуть больше чем удвоенная. Придётся модернизировать софт на PC. Как-то так...


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
SysRq
сообщение Nov 18 2008, 19:56
Сообщение #3


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Дежавю! http://electronix.ru/forum/index.php?showtopic=55002
Вам задали уже все наводящие вопросы.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 18 2008, 21:09
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(SysRq @ Nov 19 2008, 00:56) *
Дежавю! http://electronix.ru/forum/index.php?showtopic=55002
Вам задали уже все наводящие вопросы.
У меня тоже возникло дежавю biggrin.gif Думаю, проблема в том, что ту тему топикстартер (сдуру? wink.gif ) закрыл, а открыть снова уже не может. Он. не является членом группы "свои".

Топкстартер, не нужно дублировать вопрос. Пишите что УЖЕ сделали? Какие решения приняли? Что не получилось? и т.д.
Go to the top of the page
 
+Quote Post
VDG
сообщение Nov 19 2008, 00:28
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Да ничего он сдуру не закрыл. Всё у него работает. Он тупо сделал копию, так как не услышал то, что хотел услышать. А ответ там один - НИЗЬЗЯ.

ЗЫ. из-за этого "чудака" с его копией у меня аж идиотская мысль в голове мелькнула что я в "День сурка" попал.

Сообщение отредактировал VDG - Nov 19 2008, 00:31


--------------------
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 20 2008, 00:25
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Или сделать одно из устройств роутером
Код
[Комп] -----[ У1 ]-----[ У2 ]


или использовать отдельный концентратор с тремя портами.

Код
[Комп]-------[ Концентратор ]
                 |    |
                У1    У2
Go to the top of the page
 
+Quote Post
=GM=
сообщение Nov 20 2008, 21:01
Сообщение #7


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(viktor4152 @ Nov 18 2008, 17:21) *
Одним словом, как можно организовать два полноценных канала связи RS-232 через один канал на радиомодемах?

Вот ещё один вариантик. С обеих сторон ставите по тиньке АТTiny2313. Каждая тинька имеет 3 полноценных уарта, скажем программный и два аппаратных. Передача по радиоканалу в обе стороны идёт на удвоенной скорости 19200, остальные - 9600. Разделение байтов на каналы - по биту паритета, в первом канале он 0, а во втором - 1


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Nov 21 2008, 18:23
Сообщение #8





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Всё правильно Вы поняли, VDG. Но впредь попросил бы в мою сторону всевозможные высказывания (по поводу чудака, например) исключить. Я действительно не услышал там чего хотел, и решил, что в тот раздел, видимо, заглядывают всё больше компьютерщики, и что я неверно выбрал раздел. (Я здесь новенький, и сразу не разобрался со всеми ветками.) И там всё это изложил. И извинился, что отнял впустую у людей время. После я нашёл нужную ветку, и скопировал сюда свой вопрос. Всё просто. У того, кто там внимательно читал, не должно было возникнуть дежа-вю.
По поводу наводящих вопросов: Обмен пакетами, запрос-ответ, адресации, видимо нет, т.к. изначально весь тракт работает на одно конкретное устройство. Но не факт. Это чисто моё предположение, т.к. что такое адресация, я не знаю. Могу только предположить.
По времени реакции тоже не знаю, и влезть ни в устройство, ни в софт на стороне запроса не могу. Есть только RS-232 на разъёмах, и обмен через радиомодемы. Но в процессе экспериментов, думаю, довольно быстро узнаю, о времени реакции. Для начала, видимо просто попробую принять 9600 и перенаправить всё на радиомодем.
Смогут ли радиомодемы сами разобраться, кому когда принимать данные, а когда передавать, и можно будет всё кидать в кучу на UART или всё это нужно будет разгребать програмно, и чётко отслеживать последовательнось данных, вот в чём вопрос. Не будет ли одновременной передачи с двух сторон?
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 22 2008, 02:12
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(viktor4152 @ Nov 21 2008, 20:23) *
Смогут ли радиомодемы сами разобраться, кому когда принимать данные, а когда передавать, и можно будет всё кидать в кучу на UART или всё это нужно будет разгребать програмно, и чётко отслеживать последовательнось данных, вот в чём вопрос. Не будет ли одновременной передачи с двух сторон?

Одновременной передачи не будет, точнее будет, но модемы сами разберутся как эту коллизию обойти.

А вот разгребут ли другие устройства это вопрос. Сами - наврятли. Все зависит от протокола по которому комп общается с этими устройствами..

Цитата
Обмен пакетами, запрос-ответ, адресации, видимо нет, т.к. изначально весь тракт работает на одно конкретное устройство. Но не факт.

Адресация - аналогия почты, пишете письмо, указываете адрес доставки. Письмо доставят абоненту. Нет адресации - это все равно, что отправить конверт без адреса получателя, такой конверт либо выбросят либо зачитают для всех. Так вот без адресации ваша задумка работать не будет.
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Nov 22 2008, 16:00
Сообщение #10





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Другие устройства - это моя Tiny2313, которая будет формировать адресацию, если это можно так назвать, 9-м битом (после 8 бит данных) или битом чётности, если только бит чётности не влияет на работу модемов. Ежели байт данных пришёл на Tiny2313 от аппарата1, то устанавливаем 9-й бит при передаче через UART, или устанавливаем бит чётности. На приёмном конце это дело отслеживаем и направляем на нужные аппараты. Как-то так.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 22 2008, 19:05
Сообщение #11


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(viktor4152 @ Nov 22 2008, 18:00) *
Другие устройства - это моя Tiny2313, которая будет формировать адресацию, если это можно так назвать, 9-м битом (после 8 бит данных) или битом чётности, если только бит чётности не влияет на работу модемов. Ежели байт данных пришёл на Tiny2313 от аппарата1, то устанавливаем 9-й бит при передаче через UART, или устанавливаем бит чётности. На приёмном конце это дело отслеживаем и направляем на нужные аппараты. Как-то так.

Не надо никаких 9-х бит. ибо это гонево. Модемы точно не поймут, т.к. работают с 8-ми битными кадрами. Просто добавьте вперед один байт адреса - это и будет адресация.
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Nov 23 2008, 13:17
Сообщение #12





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Да, такой вариант рассматривался, но я его исключил сразу, т.к. для сохранения всех временных интервалов (ну более-менее) придётся учетверить скорость передачи. А это увеличит вероятность ошибки. А формат данных на конкретно моих модемах может выбираться как 8-ми, так и 9-ти битный. И наличие бита чётности и длину стопового бита тоже можно выбрать при кофигурации модема.
Так что, думаю, осталось только намалевать программку и всё это дело испытать. Две платы уже слепил. Только процы взять осталось и кварцы (нет в магазинах в нашем солнечном Чуркестане, говорят недели через 2-3 будет).

Сообщение отредактировал viktor4152 - Nov 23 2008, 13:21
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Jan 7 2009, 14:03
Сообщение #13





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Люди добрые, не дайте сойти с ума, помогите, кто чем может. Уже неделю бьюсь на программой, не работает. Все фьюзы прописал правильно, если в программе написать отправку в UDR конкретного байта, то этот байт на компе я и принимаю. Питание от трансформаторного блока питания через кренку. Урезал уже всё, запустить бы для начала линию софтового приёмника (INT0) с последующей передачей на UART. А в приведённой программе софтовым UARTом я принимаю какую-то кашу. И не пойму, где я ошибаюсь.
Вход соф UARTa - PD2 - Определение стартового бита - прерывание по спаду INT0. Тут же запускается таймер T/C0 на 1,5 бита. Каждый обработчик прерывания по таймеру (по совпадению) начинается с записи в OCR0A числа, соответствующего длительности 1 бита. По окончанию приёма принятый байт нужно передать в аппаратный UART.
Прикрепленные файлы
Прикрепленный файл  Proga.txt ( 4.77 килобайт ) Кол-во скачиваний: 80
 
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 7 2009, 14:22
Сообщение #14


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Почему 1,5 бита?
Надо:
0) По прерыванию задать 0,5 бита задержку и инициализировать таймер0 (в общем, остальное нормально)
1) Первое прерывание по Тайм0 - проверить линию на "все_еще_0", если да - то устанавливать уже полновесный 1 бит. Ессно, все наоборот - сначала устанавливаем таймера, потом принимаем решения. smile.gif
Если у нас FAIL - поставить все на ИНТ0 обратно. То же касается и проверки стоп-битов.
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Jan 7 2009, 20:07
Сообщение #15





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Всё равно не работает. Принимается что-то рядом, но всё равно не то. Иногда приходит по два байта. Логично предположить, что либо контролер делает что-то ещё между прерываниями от таймера (где-то же он берёт эти лишние биты), либо я неправильно посчитал временные интервалы. Непонятно.
Go to the top of the page
 
+Quote Post
smac
сообщение Jan 7 2009, 20:43
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Цитата(viktor4152 @ Jan 7 2009, 23:07) *
Всё равно не работает.
...

У Вас регистр temp в прерываниях изменяется, а в стеке не сохраняется, в этом может быть проблема.
Вообще не очень понятна логика приемника, понятно, что сдвиг, но зачем там сохранения SREG и т.п. - непонятно. Это я к тому, что комментариев маловато, тем более для ассемблера, разбираться в исходнике тяжело.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jan 8 2009, 23:09
Сообщение #17


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(viktor4152 @ Jan 7 2009, 20:07) *
Логично предположить, что либо контролер делает что-то ещё между прерываниями от таймера (где-то же он берёт эти лишние биты), либо я неправильно посчитал временные интервалы

Ни то, ни другое. У вас имеется несколько ошибок в программе.

1) При вызове Timer0Comp вы сохраняете регистр SREG дважды, но 9 раз вы обходите восстановление второго сохранённого SREG. Из-за этого меняется указатель стека, в итоге вы возвращаетесь не в то место, из которого возвратились, а стек постепенно переполняется и даже может достичь области регистров.

2) При вызове Timer0Comp вы всегда должны обнулять счётчик, иначе будет временная ошибка, а вы обнуляете только после 9-го бита.

3) Вы не обнуляете count0 при первом вызове Receive0, значит прерывания таймера по сравнению могут вызываться до 256 раз, поправьте.

4) Вы обнуляете таймер, а прескалер остаётся нетронутым, может привести к потенциальным ошибкам, поправьте.

Вообще, прерывание должно быть максимально быстрым, поэтому несколько советов. Просто сохраняйте SREG в регистре, а а сам регистр сохранять не надо, зачем, вам что в данной задаче регистров не зватает? Далее, зачем обнулять таймер после приёма 9-ти бит, если вы его всё равно устанавливаете в прерывании int0, можно убрать. После того, как вы задвинули в input0 очередной бит, можно разрешить прерывания для второго канала, чтобы уменьшить временную ошибку.

Как вариант, попробуйте следующий метод приема 9-ти бит в два регистра, что-то типа

LSR input1
ROR input0

В Receive0 задать input1=1, input0=0. Заносить текущий бит командой

ORI input1,2

При сдвиге 1 будет двигаться вправо, после принятия 9-ти бит, она вылезет в перенос.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Jan 9 2009, 20:17
Сообщение #18





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Учитывая все вышеизложенные мнения, выкладываю всё, что у меня получилось. Т.к. подлая конструкция так и не заработала. Но логика работы изменилась. Хотя вновь завела меня в тупик.
Программу переделал. Написал подробные комментарии к каждой строчке (почти).
Теперь проверяю правильность принятия старта. До стопа пока не добрался, хоть бы один байт принять. Да, пересмотрел описание модемов, был неправ. Не могут они передавать данные по 9 бит. Меньше могут. Потому буду использовать адресацию. И потому два 9600 пакую в один 38400.

То =GM= , по пунктам:
1. Согласен, с SREG намудрил. Всё потёр, под SREG оставил свой регистр. Бит данных копируется через бит Т, потому SREG второй раз не сохраняется.
2. Непонятно, зачем обнулять счётчик, прерывание по совпадению, таймер работает в режиме СТС.
3. Упустил из виду, Count0 теперь обнуляю.
4. Почему могут быть ошибки, разве это не независимые регистры? Ну обнулил таймер, ну и что? Разве он не начнет считать с нуля с тем же прескалером?

Теперь самое главное: результат всех переделок. Этот подлый аппарат теперь изменил логику приёма данных. Если раньше была вообще никак не связанная каша с данными (хотя для каждого байта была своя каша), теперь всё подругому. Теперь я принимаю определённое кол-во нулей, а затем идут единицы. Кол-во единиц и нулей опять таки для каждого передаваемого байта свои и опять возможны два принятых байта. Логику чередования 0 и 1 я к исходным значениям привязат так и не смог. Но что самое подлое. Я как-то эксперимента ради перед отправкой на UART принятого байта пробовал отправлять свой фиксированный, заранее известный байт. И он красиво фиксируется. А после него опять начинается 0b11110000. А там где выдаётся по два байта, один байт был ПЕРЕД контрольным байтом, а один после. Это вообще выше моего понимания.

Сообщение отредактировал viktor4152 - Jan 9 2009, 20:34
Прикрепленные файлы
Прикрепленный файл  Proga2.txt ( 5.01 килобайт ) Кол-во скачиваний: 65
 
Go to the top of the page
 
+Quote Post
rvk
сообщение Jan 9 2009, 21:53
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 13-05-06
Из: Камышин
Пользователь №: 17 067



Можно маленький вопрос, пока Вы проверяете свой программный UART все остальное работает или нет.
Может для начала все отключить и запустить только один программный UART. Возможно конструкция не работает в целом, а один UART будет работать чисто и без сбоев. Тогда можно будет определить, кто мешает ему работать, постепенно подключая другие модули и нагружая процессор....
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jan 10 2009, 00:15
Сообщение #20


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(viktor4152 @ Jan 9 2009, 20:17) *
То =GM= , по пунктам:
2. Непонятно, зачем обнулять счётчик, прерывание по совпадению, таймер работает в режиме СТС.
4. Почему могут быть ошибки, разве это не независимые регистры? Ну обнулил таймер, ну и что? Разве он не начнет считать с нуля с тем же прескалером?

По пункту 2. Упустил режим СТС, можно не обнулять.
По пункту 4. Забудьте про прескалер, это меня мысли в другую сторону повели.

Посмотрел новую версию вашей программы по диагонали. Зачем вы поставили стартовое ожидание в полбита, а считаете до 8? Вы записываете в input0 стартовый бит, это неверно.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Jan 10 2009, 04:55
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



1. В прерывании по int0 вместо
Код
in        temp,    GIMSK;* Запрет INT0
cbr        temp,    0b10111111;*
out        GIMSK,    temp;*

нужно
Код
in        temp,    GIMSK;* Запрет INT0
cbr        temp,    0b01000000;*
out        GIMSK,    temp;*

а еще лучше cbr temp,1<<Int0

2. 1/период переполнения таймера в режиме СТС равен ZQ/PSK/(OCRA+1), поэтому длительности в 1 бит будет соответствовать значение в ОСRA == 144-1. Соответственно, 1/2 бита == 144/2-1=70

P.S. В качестве счетчика битов можно использовать и сам регистр input0, если по приходу старт-бита (по инт0) в загружать в него 0x80.
Признаком окончания приема будет появление "1" в бите переноса при прокрутке регистра input0 вправо
Тогда код
Код
RX0:;* Приём
inc    count0;* Увеличить на 1 значение счётчика битов
lsr    input0;* сдвинуть вправо регистр данных
clt;* сбросить бит Т
sbic    PinD,2
set;* Установить бит Т если на входе 1
bld    input0,7;* Скопировать бит Т в 7-й бит регистра данных
cpi    count0,8;* Если принятых бит не 8, то выход
brne    Exit0
sbi    flags0,6;* в противном случае устанавливаем флаг приёма байта данны

нужно заменить на
Код
clc;Входящий бит записываем через бит переноса
sbic    PinD,2
sec;
ror    input0; Записываем входящий бит, признак последнего бита - в флаг С
brcc    Exit0;
sbi    flags0,6; Если на выходе С==1, то принятый бит - последний. Дальше принимаем стоп-бит
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Jan 10 2009, 15:51
Сообщение #22





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



ВСЁЁЁЁЁ
Работает. Изучал AVR по книге Мортона, там видимо опечатка в описании команды cbr, переписал (спасибо Александру). И спасибо =GM= за поиск ошибок в первом варианте. Без вас тоже ничего бы не вышло.

То rvk:
В том то всё и дело, что от программы осталось только програмный UART.

То =GM=:
стартовый бит я не записываю, я проверяю по прерыванию от таймера флаг, который устанавливаю только при наличии 0 по истечении 0,5 бита после старта (INT0). Если по прерыванию этот флаг установлен, то только тогда начинаю записывать биты.

To Александр Куличок:
Здесь я выложил 2 варианта программы. У меня этих вариантов было штук семь. И предлагаемый Вами метод приёма я тоже испытывал. Но по понятным уже причинам, у меня ничего не заработало. Думаю, вернусь к нему.

Всем, кто хоть как-то пытался помочь, спасибо. Думаю, тема закрыта.
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jan 18 2009, 14:47
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(viktor4152 @ Jan 10 2009, 20:51) *
ВСЁЁЁЁЁ Работает.
Здесь я выложил 2 варианта программы.


Если не трудно выложи третий - рабочий...
Думаю многим, кто пытается повторить мосты, будет интересно...


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
andrikk
сообщение Jan 19 2009, 14:51
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 23-07-08
Пользователь №: 39 167



довольно таки хорошая реализация на С http://www.roboternetz.de/wissen/index.php...ART_mit_avr-gcc

Сообщение отредактировал andrik.kiev.ua - Jan 19 2009, 14:51
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jan 19 2009, 18:07
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(andrik.kiev.ua @ Jan 19 2009, 19:51) *
довольно таки хорошая реализация на С http://www.roboternetz.de/wissen/index.php...ART_mit_avr-gcc


У gcc есть один недостаток - большой размер и тормознутость результата... laughing.gif
а в мостах желательна производительность...

Последнее что переписывал - пинговалку
задача вместить в Мега48
gcc - 5.8 Кило пинг 10 мс
ASM - 1.7 Кило пинг 3 мс

в gcc - оптимизация по размеру smile3046.gif
в asm - оптимизация по производительности

разница в 3 раза, как по размеру, так и по скорости.
(как мне тут сказали - просто есть задачи которые трудно решить на СИ)


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 19 2009, 18:23
Сообщение #26


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(QuickWitted @ Jan 19 2009, 21:07) *
разница в 3 раза, как по размеру, так и по скорости.

Совершенно нормальная и неудивительная разница. Машины пока еще тупее. smile.gif И наверное, секрет фокуса в сохранении контекста/передаче параметров smile.gif
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jan 19 2009, 18:54
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(_Pasha @ Jan 19 2009, 23:23) *
Совершенно нормальная и неудивительная разница. Машины пока еще тупее. smile.gif И наверное, секрет фокуса в сохранении контекста/передаче параметров smile.gif


В оптимизации вычислений...
пример в асме что бы получить доступ ко второму нимблу 32х битного числа ничего никуда двигать и занулять не надо... я его просто беру и использую, без всяких мат операций...(подробнее о пинговалке у меня на сайте Блок 9 'Lan Bridg'.)

Сообщение отредактировал QuickWitted - Jan 19 2009, 18:58


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
viktor4152
сообщение Jan 30 2009, 09:58
Сообщение #28





Группа: Новичок
Сообщений: 14
Регистрация: 8-11-08
Пользователь №: 41 476



Всем привет, как давно я тут не появлялся.
Вот програмка, один канал, 9600 перепаковывает в 38400, адресация моя произвольная, тупо кучка единиц. На равильность не претендую, если кто подскажет, как лучше, скажу спасибо.
Программа очень сырая, будет работать до первой потери байта, проверить на модемах даже не было времени. Но два COM-порта соединяет, символы с клавы шлются в обе стороны. Для понятия алгоритма вполне достаточно. Как доведу до ума, выложу нормальную программу.
Прикрепленные файлы
Прикрепленный файл  _____3.txt ( 7.01 килобайт ) Кол-во скачиваний: 70
 
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Feb 21 2009, 14:13
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(viktor4152 @ Jan 30 2009, 14:58) *
Как доведу до ума, выложу нормальную программу.


Я за. (буду ждать, и если можно кинь сообщение в личку)


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 14:31
Сообщение #30


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Последнее что переписывал - пинговалку
задача вместить в Мега48
gcc - 5.8 Кило пинг 10 мс
ASM - 1.7 Кило пинг 3 мс


Судя по картинкам на сайте - обычным 32хбайтным пингом?

Стыдно должно быть wink.gif У меня с программным MAC'ом менее миллисекунды. Причем, стек писан на Си.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Feb 21 2009, 16:35
Сообщение #31


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(Rst7 @ Feb 21 2009, 19:31) *
Стыдно должно быть wink.gif У меня с программным MAC'ом менее миллисекунды. Причем, стек писан на Си.


bb-offtopic.gif

на дешовых МК и тормозных ISA сетевых платах (макс скорость тактирования 4 мега)?
пример на СИ и на 48 меге в студию ...
(на асме менее 3,5 кило никак)

Тут определяющий фактор не скорость - А ЦЕНА!!!!

Цитата(Rst7 @ Feb 21 2009, 19:31) *
Судя по картинкам на сайте - обычным 32хбайтным пингом?


Да.

Сообщение отредактировал QuickWitted - Feb 21 2009, 16:36


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 16:50
Сообщение #32


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
пример на СИ и на 48 меге в студию ...


Покурите тут - http://electronix.ru/forum/index.php?showtopic=44276

Даже без ISA-карты smile.gif

Стек, в котором оставлен только ответ на ICMP (приготовленно еще UDP для бутлоадера через TFTP) на вышеупомянутом железе весит
Код
1 564 bytes of CODE memory (+              40 range fill )


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Feb 21 2009, 16:58
Сообщение #33


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(Rst7 @ Feb 21 2009, 21:50) *
Даже без ISA-карты smile.gif


На одном микропроцессоре - ты ответа на пинг не получишь...
а привести железку ценой в 0,9$ отличную от сетевой платы
ты не сможешь...

почему такой размер - плату инициализировать надо...

Тут определяющий фактор не скорость - А ЦЕНА!!!!

Без работы
1,3 проц
0,2 латч
0,9 плата
0,5 мелочь

= 2,9$

Ты дешевле можешь?


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 17:06
Сообщение #34


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
На одном микропроцессоре - ты ответа на пинг не получишь...


Вы внимательно почитали топик, на который я дал ссылку?

Цитата
0,9 плата


Уже сейчас надо побираться по базарам, чтобы найти древние ISAшные сетевухи. Мое решение - оно секондхенда не требует. Цена, кстати, такая-же smile.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Feb 21 2009, 17:25
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(Rst7 @ Feb 21 2009, 22:06) *
Вы внимательно почитали топик, на который я дал ссылку?
Уже сейчас надо побираться по базарам, чтобы найти древние ISAшные сетевухи.
Цена, кстати, такая-же smile.gif


Да...
А паяльную станцию, вместе с платой где брать?
или их подарят?

у меня под плату отведено 0,9...
а работа с заказом плат и пайкой смд намного дороже...
(просто всё проводами – навестным монтажом)

Цитата(Rst7 @ Feb 21 2009, 22:06) *
Мое решение - оно секондхенда не требует.


А моё решение направлено на быстрое затыкание текущий дыры...
наименьшими средствами...

кстати на сайте я написал – не для новых разработок!!!


Цитата(Rst7 @ Feb 21 2009, 22:06) *
Цена, кстати, такая-же smile.gif


Проверил по прайсам - у нас в наличии их просто НЕТ!!!
а заказ стоит НЕ МАЛО!!!

так что В МОИХ УСЛОВИЯХ моя реализация дешевле раза этак в
ТРИ если не больше!!!

т.к. гнездо с трансформатором у нас 2 стоит...
(напомню а ISA плата которая это содержит 0,9)

Сообщение отредактировал QuickWitted - Feb 21 2009, 17:28


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 17:36
Сообщение #36


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А паяльную станцию, вместе с платой где брать?


А зачем паяльная станция? Там все запаяно обычным паяльником.

Кстати, на будущее - выводной монтаж дороже SMD. Раза эдак в 2. И ручной в том числе.

О печатных платах - те платы, которые на фотографии, обошлись тогда 10 штук за $20. Качество, конечно, так себе, но не надо гемороя с проводками. И Вам рекомендую в следующий раз вместо рукопашной атаки с проводками на макетке банально заказать платы. Наверняка в Вашем городе можно найти контору, которая сделает достаточно дешево. Ну прорежете скальпелем пару расплывшихся дорожек и восстановите пару перетравов.



Цитата
Проверил по прайсам - у нас в наличии их просто НЕТ!!!


Чего нет?

Цитата
т.к. гнездо с трансформатором у нас 2 стоит...


Если уж хочется совсем дешевки - можно обойтись без транса. Просто гнездо стоит копейки. Можно и вообще патчкорд припаять на плату одним концом.

Кстати, если есть желание обсудить эти вопросы - пойдем в ту тему, а то тут за оффтоп накажут wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01666 секунд с 7
ELECTRONIX ©2004-2016