Микроконтролери и електроника
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/