Попробуйте сделать так: Прямо сейчас в предложенном мной эксперименте подключите на выход СОМ - порта (onWrite)
Компанент "Сообщение" и Вы убедитесь, что цифры 255 передаются ТРЕМЯ байтами, а не укладываются в один байт.
------------ Дoбавленo в 23.09:
Но я же смотрю именно на выходе физического COM-порта .
------------ Дoбавленo в 23.13:
Я то смотрю именно на выходе физического COM-порта!
Этот топик читают: Гость
Ответов: 29
Рейтинг: 0
|
|||
карма: 1 |
|
Ответов: 274
Рейтинг: 47
|
|||
kolira, А что число 255 занимает не 3 байта?
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Laetar, в инженерном калькулятаре (calc.exe) есть опция перевода любого числа в двоичный вид - советую посмотреть
|
|||
карма: 27 |
|
Ответов: 274
Рейтинг: 47
|
|||
Dilma, Так я то знаю, но человек видимо так и посылает число 255 не конвертируя, вот и получается 3 байта у него
|
|||
карма: 0 |
|
Ответов: 29
Рейтинг: 0
|
|||
Прошу ВАС внимательно прислушаться к моим доводам: Когда я записываю 255 я чётко осцилографом вижу на
выходе RS232 ТРИ стартовых импульса, а не ОДИН, как следует из Ваших аргументов. Как же это объяснить? |
|||
карма: 1 |
|
Ответов: 274
Рейтинг: 47
|
|||
карма: 0 |
| ||
файлы: 1 | code_20483.txt [608B] [199] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Laetar писал(а): Так я то знаю, но человек видимо так и посылает число 255 не конвертируя, вот и получается 3 байта у негодействительно не подумал про такую возможность... |
|||
карма: 27 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
ЁПРСТ, он символы 2, 5, 5 передает (3 байта ASCII), а не символ со значением 255
|
|||
карма: 22 |
|
Ответов: 356
Рейтинг: 31
|
|||
[flood]Ещё одно подтвреждение того, что всем стоит прислушиваться к рекомендациям Почему-то не отвечают, и особенно к пункту номер один. И возможно последнее пожелание всеувасхреновоодинязнаюкакнадо исполнится
![]() |
|||
карма: 0 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
А все от чего это, от незнания того, что представления чисел может быть совершенно разными. Многие, кстати, думают, что BIN или HEX -- это значения, а на самом деле -- это текст, так же и INT, написали текстом 255, и думают, что это значение, а на самом деле это может быть и текст
|
|||
карма: 22 |
|
Ответов: 29
Рейтинг: 0
|
|||
Уважаемые участники дискуссии ( nesco,Dilma и Леонид), обсуждавшие 8.09.10 работу компанента HiAsm COM – порт, я глубоко убеждён, что каждый из НАС в конечном итоге всё таки заинтересован в прояснении истинной работы компанента COM – порт системы HiAsm . Иначе же довольно сложно двигаться вперёд и совершенствоваться!
Поэтому позвольте мне просто спокойно высказать своё мнение, свою позицию, а Вы попытайтесь это опровергнуть! Суть моей позиции заключается не в словесной аргументации, а в анализе результатов, проведенного мною экспериментального исследования функционирования компанента HiAsm COM – порт. Эти результаты объективны и, я думаю, их трудно опровергнуть простыми высказываниями, типа: « Причём тут осциллограммы вообще», или: « С какого перепугу» и так далее. Напомню схему эксперимента: СОМ – порт моего компьютер, в правильности работы которого я убеждён, так как я давно и успешно его использую для программирования микроконтроллеров, физически подключён к системе USART микроконтроллера ATtiny2313 по классической схеме: Выход RD, СОМ – порта компьютера, соединён через согласователь уровней напря- жений ( микросхему MAX232) со входом RxD USART микроконтроллера ATtiny2313. Запускаю от таймера с период 100 Мсек компанент СОМ – порта HiAsm и выдаю в USART компьтера, и естественно затем на СОМ – порт, три цифры (255), что соответствует двоичному коду: 11111111. Скорости работы и структуры сигналов систем USART конструктора HiAsm и компьтера полностью согласованы! И вот объективно на экране осцилографа ясно наблюдаю 3-и посылки переданного сообщения. В начале каждой посылки чётко просматривается СТАРТОВЫЙ импульс, 4-ре информационных бита ( в первой посылке – 0010, во второй – 0101 и втретьей – 0101 ) и заканчивают посылки биты чётности и стоповый. Вот такой беспристрасный результат! Лично для меня это не страшно, так как я написалл на Ассемблере программу перевода полученных посылок в один БАЙТ, закачал НЕХ – файл этой программы в МК Attiny2313 и устройство прекрасно заработало. Никаких прблем! Единственно, я считаю, что такая программа должна быть размещена в ИСХОДНИКЕ компанента СОМ – порт прекрасного конструктора HiAsm. И тогда выходные сигналы СОМ – порт будут полностью стандартизованы. Ведь функции USART компьютера крайне скромны: Принять информационный байт от компанента СОМ – порт HiAsm, приформировать к нему служебные импульсы ( биты Старт, Чётности и Стоп ) и последовательно выдать созданное сообщение на контакт RD разъёма RS232 |
|||
карма: 1 |
|
Ответов: 1379
Рейтинг: 86
|
|||
kolira, уважаемый, может все-таки приведете схему??
![]() А не будете тут пересказывать нам, что и куда ставите ![]() |
|||
карма: 0 |
|
Ответов: 274
Рейтинг: 47
|
|||
kolira, тебе же обьяснили, что ты передаешь строку размером 3 байта, вот поэтому и передается 3 пакета, ты мою схему смотрел вообще?
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
kolira, все это понятно, но ваше последнее сообщение практически полностью подтверждает предположение Laetar - вы подаете на COM порт не число 255, и не строку "255" и три числа 2(0010),5(0101) и 5(0101), что собственно говоря и наблюдаете на выходе (удивительно было бы наблюдать там еще что-то...). Еще раз просьба ознакомится с примером code_20483.txt из сообщения выше, где показано, как правильно передать число 255
|
|||
карма: 27 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
kolira писал(а): заканчивают посылки биты чётности и стоповыйНу нет там бита четности, давно его не ипользуют уже. Вы лабораторную работу читали, которую я приводил, и рисунок смотрели, где там бит четности ![]() Еще раз -- компонент Com-порт работает в режиме 8 бит, без паритета четности, 1 стоповый бит |
|||
карма: 22 |
|