Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
Borland 6 ++ Питане http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=14385 |
Страница 1 от 1 |
Автор: | bengata [ Вто Фев 23, 2016 9:59 am ] |
Заглавие: | Borland 6 ++ Питане |
Налага се да изпращам по com порт данни с дължина 166 бита . Който са разделени на 26 бита синхронизация и 144 бита полезна информация За целта създавам буфер char CharBuff1[ 3 ] = { 0xAA,0xAB,0xC4, } ; Като в него са първите 26 бита като чар , но един чар е 8 бита . 3 чара по 8 бита са 24 бита . Увисват 2 бита . Питането е имали начин ( поне аз не намерих и не знам как ) да изпращам бит по бит . Благодаря предварително . |
Автор: | syscop [ Вто Фев 23, 2016 10:11 am ] |
Заглавие: | Re: Borland 6 ++ Питане |
Прочети това: https://en.wikipedia.org/wiki/Serial_port - доста неща ще ти станат ясни. |
Автор: | ike [ Вто Фев 23, 2016 12:06 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
bengata какво се опитваш да направиш? Това по радиоканал ли ще се изпраща? Com порта се синхронизира на всеки байт, защото на всеки 8 бита слага поне по 2 сихронизиращи Старт и Стоп битове. |
Автор: | bengata [ Вто Фев 23, 2016 12:32 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
Да по радио канал ще се предава . Нещо съвсем се обърках . Как трябва да се направи ? |
Автор: | radolin [ Вто Фев 23, 2016 1:40 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
Структури/bit field? |
Автор: | bengata [ Вто Фев 23, 2016 3:47 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
bit field не мога да намеря пример за буфер . Други идей |
Автор: | palavrov [ Вто Фев 23, 2016 6:18 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
Това няма как да стане през сериен порт заради задължителните старт и стоп бит които са 0 и 1 - т.е. между всеки 5-6-7-8-9 бита ще има синхронизация която ще обърка данните. Един начин да се направи е да се ползва някакъв bit bang и през някое gpio - ако ще се предава от PC което е под Windows (или друг тежък OS) трудно може да се гарантира стабилна скорост на предаване и пак ще стане каша. С микроконтролер може и да стане. Това разбира се ако няма някаква синхронизация на по ниско ниво а се разчита само на тези166 бита. @bengata прочети какво са synchronous и аsynchronous комуникация, протоколи и т.н. и ще започне да ти се изяснява, че още от първото изречение тръгваш в грешна посока - ком порта не праща произволен брой битове а данни които са от 5 до 9 бита. |
Автор: | ike [ Вто Фев 23, 2016 9:07 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
bengata най-добре е да дадеш цялата информация, а да не мълчиш като комунист на разпит. Приемащото устройство твое ли е или е фабрично? Със сериен порт имаш задължително старт и стоп бит, на всеки байт. 144 бита са 18 байта това означава, че реално ще предадеш 180 бита заедно със спиращите и стартиращите битове. Освен това на сериен порт IDLE е в състояние 1 - това означава, че ако сложиш предавател от тези за под $1 с 2 транзистора и го свържеш с порта ще предаваш постояно на 433 и ще хабиш ненужна енергия и ще има опашка от хора да те бият. |
Автор: | NikB [ Чет Мар 03, 2016 12:30 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
Впрочем, подобна (но не същата) поредица може да стане и през ComPort. 144 бита са 14 1/2 десетбитови (старт+8+стоп) бита. Последния байт трябва да е специален, за да завършва предаването му на половината (част от битовете му винаги ще са 1 - като стоповия). Т.е. ако авторът може да прежали, че на всеки 10 бита два ще са винаги в едно и също състояние - може и да опита през UART. |
Автор: | slav4o.com [ Чет Мар 17, 2016 10:03 pm ] |
Заглавие: | Re: Borland 6 ++ Питане |
Нещо с бит банг както писаха, например да щракаш някой от пиновете RTR, DTR , RTS - мертеес |
Страница 1 от 1 | Часовете са според зоната UTC + 1 час [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |