![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: -1 Всего: 3 |
Romikgy
Вот все смотрю я и думаю, а что в 16550 стоит частотомер? И строго определяет, если частота не из набора: CBR_110 CBR_19200 CBR_300 CBR_38400 CBR_600 CBR_56000 CBR_1200 CBR_57600 CBR_2400 CBR_115200 CBR_4800 CBR_128000 CBR_9600 CBR_256000 CBR_14400 , то не работаю!!!!!!!!!!!!!!!!!! А если из набора - то пожалуйста. Ну ведь это бред полный!!! Я уже понял, что в виндовсе надо писать свой драйвер, но в досе то можно было на любой скорости работать - однозначно!!! Это делалось не раз и не одним человеком!!! и все с тем же 16550. И хватит уже по моему, кто-то знает как работает 51 вый, а кто-то создает аля MutherBoard для поцессоров на 650 ножек. Кому верить? Думаю тем, кто ... Добавлено @ 13:31 Всем спасибо, узнал на сей раз достаточно много -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
Для микрухи 16550 передаются не частоты 115200,57600, .... , а коэф-енты 1,2, .. НЕТ там частотомера , но есть делитель. Выше тебе отвечал не только я , но и другие, читать/записывать из регистров порта (в ДОС) ты можешь с какой тебе угодно скоростью , а посылатся/приниматся из/в линию они будут на фиксированых частотах, и зависит это от коэф. деления в микрухе 16550. -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 12 |
Romikgy
В компе я как раз про то и говорил, что не знаю. А даташитом можешь кинуться на эту микруху? Может, в ней тоже можно как-то режимы менять? ;) Хотя, в обед пойду поковыряю какую-нибудь старую мать,из которых мы выпаиваем нужные себе элементы, посмотрю че там за микруха и Яндексом поищу... ;) Это сообщение отредактировал(а) Dreamer_0x01 - 13.9.2005, 14:46 -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
Вот те даташит одной из семейства 16550. rgy.pisem.net\files\PC16550DV_NSC.pdf -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| smalcom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: нет Всего: 7 |
Ветка здаровая и вверху мало чегочисал? а сразу перейду к объяснениям. Не ОСи и програмисты их писавшие бараны
Это сообщение отредактировал(а) smalcom - 15.9.2005, 08:10 -------------------- What DA F...??? |
|||
|
||||
| Dreamer_0x01 |
|
||||||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 12 |
Ну вообще-то когда речь заходит об использовании UART, то именно такие кварцы и используют, иначе синхронизироваться на стандартные скорости весьма сложно.
Да, я уже говорил на эту тему. Но они вроде как хотят кроме того, что нестндартную частоту сделать, так кроме этого ее еще и переменной сделать. По-моему, это уже повлечет за собой массу сложностей...
В общем-то так, но "дискретность" "стандартных" частот получается гораздо ниже, чем общепринятая. Например, имеем контроллер на 51м ядре с кварцом 11059 кГц. Допустим, будем генерировать бодрейт таймером в режиме передачи 3, при бите SMOD равном 0. (См. Даташит) Тогда бодрейт порта определяется выражением F=(1/32)*(11059/12)/(256-TH1), где TH1 - число, загружаемое в старший байт таймера 1. Тогдя для ряда чисел ТН1=240..255 имеем следующий ряд частот: F(240)=1.8 kHz; F(241)=1.92 kHz; F(242)=2.057 kHz; F(243)=2.215 kHz; F(244)=2.4 kHz; F(245)=2.618 kHz; F(246)=2.880 kHz; F(247)=3.200 kHz; F(248)=3.600 kHz; F(249)=4.114 kHz; F(250)=4.800 kHz; F(251)=5.760 kHz; F(252)=7.200 kHz; F(253)=9.600 kHz; F(254)=14.400 kHz; F(255)=28.799 kHz; Как видим, кроме "стандартных" значений скоростей мы получили и несколько "нестандартных": 2.618,4.114,2.057,2.215. Естественно, при бите SMOD равном 1 эти значения умножаются на два. Ну и меняя кварцы, можно менять эти частотные ряды (скажем, в 100 раз больше...) Таким образом, можно сделать следующий вывод: Получить на данном кристалле произвольную скорость нельзя, но можно получить "нестандартные" значения скоростей. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
||||||
|
|||||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |