роботы робототехника микроконтроллеры


 Страниц (5): « 1 [2] 3 4 5 »   

> Без описания
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



skyburn пишет:
Можете мне теперь подсказать, какую библиотеку мне использовать для паскаля, что б я мог работать с ком портом?


Это какого такого паскаля? турбо-паскаль из нафталина вынули чтоли.

для Дельфи это компоненты nrCom или TComPort

(Отредактировано автором: 12 Мая, 2011 - 08:56:35)

 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



АГа, спасибо, я просто некогда не работал, а в гугле всякий непонятный хлам)
(Добавление)
А вы не знаете как получить список доступных ком портов на компе? А то что то в инете толком ничего нет
(Добавление)
А все)) Уже нашел)) Буду разбираться )
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Такс)) Теперь новый вопросик. По поводу того, как мне отправить 256 байт в МК. То есть, есть массив двумерный 16х16. Типа байт. Вот. Нужно его передать, и вывести на матрицу через мк тини2313 и 4 сдвиговых регистра.
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



Хотел посоветовать записать в EEPROM, но у ATtiny2313 ее всего 128 байтов. Поэтому, придется запихивать данные в сдвиговые регистры по мере поступления или менять тип данных массива (один элемент – один бит). А еще лучше и тип данных поменять и запихивать данные в сдвиговые регистры по мере поступления Улыбка
(Добавление)
На С этот массив может выглядеть так:
unsigned char array[2][16]; // 32 байта

(Отредактировано автором: 17 Мая, 2011 - 21:08:41)

 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Не совсем могу понять как производиться прием данных в МК, по этому не могу проработать варианты вывода данных
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



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

Можно даже вообще не задумываться, как USART там эти байты разгребает из последовательностей импульсов.
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



То есть, я могу в МК обьявить массив 16х16 и по прерыванию загнать в него получаемые данные. А именно 0 или 1.
А по скорости работы как оно будет? Мне все таки нужно матрицу выводить.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



skyburn пишет:
То есть, я могу в МК обьявить массив 16х16 и по прерыванию загнать в него получаемые данные. А именно 0 или 1.
передаются восьмибитовые байты, а как там вы их скомпануете в PC и разгребёте после приёма в МК - это уже ваша забота Улыбка
skyburn пишет:
А по скорости работы как оно будет? Мне все таки нужно матрицу выводить.
Ну посмотрите стандартные скорости COM - порта.
Быструю Анимацию на диспей получить будет сложновато, но отдельные картинки передавать - вполне.
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Блииннн все равно не понимаю, как он приймет именно 256 байт, а потом снова, если придут 256, то как он снова их запишет в массив. ((
(Добавление)
Или это указывается при отправке с ПК сколько данных будет передано?
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



skyburn пишет:
Блииннн все равно не понимаю, как он приймет именно 256 байт, а потом снова, если придут 256, то как он снова их запишет в массив.
А это всё ручками разгребать, ручками Улыбка Иначе - никак.
Берём лопатку и кидаем байты на транспортёрную ленту.
В приёмной стороне берём опять лопатку и раскидываем прибывшие кучки как нам нужно Улыбка

skyburn пишет:
Или это указывается при отправке с ПК сколько данных будет передано?
Для этого указываются СТАРТ-кондишн и СТОП-кондишн Улыбка Добро пожаловать в протоколы Улыбка
Почитайте какие бывают, можете выбрать на своё вкус.
Или можете свой придумать.
Принцып такой: закрепляется за каким то кодом СТАРТ-условие (например пара каких то специфичных байтов), и от этого уже прыгается.
СТОП-условие может и отсутствовать. Длину пакета тоже можно указывать, а можно и не указывать...

Например:
пакет состоит из:
СТАРТ-условия ASCII символа "S",
далее идёт 256 байт кода,
в заключение пошлите на всякий случай контрольную сумму (хватит просто про XOR-ить все 256 байтов, но можно и позаковыристей придумать).

В данном примере есть один момент: среди 256 байтов могут встретиться байт-код буквы "S", как его отличить от СТАРТ-условия? - а никак.
поэтому сами 256 байт ваши приходится ещё раз кодировать во что то. И скорее всего 256 байтов вырастут наполовину (в зависимости от кодирования), а то и в несколько раз.

В общем вот такое ... грузилово Улыбка
Вам как то придётся обернуть ваши 256 байтов в транспортный протокол.
(мне больше понравился с бит-стаффингом, но у меня и пакет был не более 8 байтов)

Кстати, можете ваши 256 байтов передавать построчно - по 8 байтов в пакете...

ну ... большое поле для деятельности с потайными граблями Улыбка
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Цитата:
Кстати, можете ваши 256 байтов передавать построчно - по 8 байтов в пакете...

Этот вариант мне как то больше подуше. Фуг ну и ужас))) Может проще поставить Мегу8 и не париться?)))
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Опять вернемся к нашей Тини2313. ПРоблема теперь в следующем. Я не взял во внимание, когда делал прототип с матрицей 4х4, что матрица 16х16 не влезет. Мне пишет что не хватает памяти =(
Нужно как то решать проблему, и срочно.
Я использую 4 сдвиговых регистра, к ним подключены 256 светодиодов. то есть, к 2 м сдвиговым регистрам подключены 16 плюсов столбиками, а к 2ой паре подключены 16 минусов строками.
Теперь вопрос, как заставить это все работать так как нужно (
(Добавление)
И еше вопрос, почему такое большое число ошибок при передаче данных по ЮАРТ, данные передаю из МК, и как от этого избавиться. Я передаю символ 'a'. Вот что получаю:

aaaaaaÿaaaa}}aa}}aaÿaaaÿaaaÿaaa}aaßaaa}}
aa}}aa}}aa}qaaÿaaaaaaÿaaaÿaaaÿaaaÿaaaÿaaa}yaaaýaaaÿaaayýaaaÿaaaaýaaaÿaaaq

То есть видно сколько раз передалось не "а" а бог знает что
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



А не, уже передает норм, то какой то глюк был
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Можете скинуть статью какую нить про ЮАРТ, а что то не могу ничего дельного найти.
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



skyburn пишет:
Можете скинуть статью какую нить про ЮАРТ, а что то не могу ничего дельного найти.


даташит контроллера своего посмотрите ... лучше чем 10 статей непонятно о чем

http://easyelectronics.ru/avr-uc...cherez-uart.html

читать коментарии тоже

(Отредактировано автором: 10 Июня, 2011 - 22:05:27)

 
 Top
Страниц (5): « 1 [2] 3 4 5 »
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru