roboforum.ru

Технический форум по робототехнике.
Текущее время: 22 фев 2025, 14:49

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 223 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 15  След.
Автор Сообщение
 Заголовок сообщения: RoboRF в МиниБоте
СообщениеДобавлено: 29 янв 2009, 00:22 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Для начала знакомлюсь с предметной областью: изучаю datasheet ИС C2500 и исходные коды минибота и т. д.


Вложения:
Комментарий к файлу: последняя рабочая версия
v3.0.rar [21.17 КиБ]
Скачиваний: 39
Комментарий к файлу: имеющиеся исходники
исх код эда.rar [67.28 КиБ]
Скачиваний: 78
Комментарий к файлу: Даташит на ИС
cc2500.pdf [1.3 МиБ]
Скачиваний: 135
Комментарий к файлу: Схема миниплаты
shema.jpg
shema.jpg [ 451.34 КиБ | Просмотров: 40687 ]

_________________
if(!Operate) Read(pDatasheet);


Последний раз редактировалось galex1981 15 сен 2009, 21:56, всего редактировалось 6 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 06 фев 2009, 12:20 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
blindman писал(а):
Так надо проверять флаг ошибки CRC перед тем как принятый пакет использовать

Вопрос: переотправлять пакет после проверки CRC я должен или у самой cc2500 есть команда переотправки последнего пакета?

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 06 фев 2009, 12:48 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Все сам

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 06 фев 2009, 13:40 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
переделал код без использования crc8, используя бит CRC_OK


Вложения:
1.51.rar [15.67 КиБ]
Скачиваний: 21

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 08 фев 2009, 02:10 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
В общем кое что готово, с обработкой CRC общение 2х мегаплат (2х миниботов), но есть одна проблема. Суть ее состоит в следующем: заливаются 2 прошивки на каждую плату. Изначально платы находятся в режиме приема. После того как одной платой отправишь сообщение другой она вроде как переходит в режим ведущей, то есть передавать передает но идут глюки с получением. Если затем второй платой не приять а передать сообщение, то она либо вешается, либо перезагружается программа на МК. Если плата вешается, то у нее работает только передача, прием отсутствует. Если МК перезагружается, то прием продолжает работать.
Самое странное что вешается плата на месте возможного приема CC2500 при проверке 1 го уровна на GD0:
Функция приема сообщения радиомодема
Код:
ПринятьДанные:
Text_priem = ""
'Переводим передатчик в режим IDLE
Команда = Команда_idle : Gosub ПослатьКоманду

'Обнулим FIFO RX
Команда = Команда_frx : Gosub ПослатьКоманду

'Обнулим FIFO TX
Команда = Команда_ftx : Gosub ПослатьКоманду

Команда = Команда_rx : Gosub ПослатьКоманду


   Do
      If Gdo0 = 1 Then Goto Zbend
   Loop

Zbend:
   Do
      If Gdo0 = 0 Then Goto Zbend0
   Loop
Zbend0:
'1 длина
'2 канал
'3-n пакет

   Регистр = Регистр_rxbytes : Gosub ПрочитатьСтатус
   If Статус = 0 Then Goto Zbok
   Zb_cs = 0
   Команда = Регистр_rxfifob : Статус = Spimove(Команда)
   Статус = Spimove(Команда)                                ': Print Hex(Статус);
   Длина = Статус - 1
   Статус = Spimove(Команда)                                ': Print Hex(Статус) ; "-";     '  #1 ,
   For I = 1 To Длина
      Статус = Spimove(Команда) :
      Text_priem = Text_priem + Chr(Статус):                '  #1 ,данные
      Ucsr0b.rxen0 = 0
      Print Chr(Статус);                                    '  #1 ,данные
      Ucsr0b.rxen0 = 1
   Next
   'нужно ли переотправить код
   If Text_priem = "+-*/*/+-++" Then
      Isread = 0:
      Text = Cpytext:                                       'копия строки для повторной отправки
      'отправка сообщения
      Gosub ОтправитьДанные:
      Text = "":
      Goto Zbok
   End If
   Ucsr0b.rxen0 = 0
   Print
   Ucsr0b.rxen0 = 1
   Статус = Spimove(Команда) :                              'Print Hex(Статус);
   Статус = Spimove(Команда) :                              'Print Hex(Статус)
   Zb_cs = 1
   'выборка из 7го бита CRC_OK
   If Статус.7 = 0 Then
      'запрос на переотправку сообщения
      Isread = 0:
      Text = "+-*/*/+-++"                                   'кодовое слово означающее переотправить сообщение
      Gosub ОтправитьДанные
      Text = "":
      Goto Zbok
   End If
Zbok:

Return


Место где программа вешается:
Код:
   Do
      If Gdo0 = 1 Then Goto Zbend
   Loop

Zbend:

Просто не выходит из этого цикла при реальном приеме


Вложения:
1.56.rar [3.16 КиБ]
Скачиваний: 19

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 12 фев 2009, 20:38 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
переделал


Вложения:
1.6.rar [16.15 КиБ]
Скачиваний: 20

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 26 фев 2009, 19:01 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
во чё у себя в закромах надыбал...

Вложение:
antikollizii-1.GIF
antikollizii-1.GIF [ 59.72 КиБ | Просмотров: 3093 ]

Вложение:
antikollizii-2.GIF
antikollizii-2.GIF [ 77 КиБ | Просмотров: 3071 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 27 фев 2009, 12:30 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Спасибо Эд, это действительно пригодится для радиоканала

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 01 мар 2009, 22:25 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Выкладываю очередную версию кода. В нем проблема: если переключаться с передачи на прием, прием не работает.


Вложения:
1.7.rar [16.64 КиБ]
Скачиваний: 16

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 02 мар 2009, 12:47 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
INT1 прерывание не работает


Вложения:
250kbps_in_out_mega88.rar [3.28 КиБ]
Скачиваний: 15

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 03 мар 2009, 02:54 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Наконец то получилось что то дельное!!!!!!!!!! Работает приемо-передача, остались последние штрихи: подчистить буферы, и убрать повторение приема при передаче


Вложения:
1.72.rar [16.75 КиБ]
Скачиваний: 19

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 05 мар 2009, 01:29 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Подчистил буферы, убрал повторение данных при передаче.
Осталось:
-Проблема: При передачи с мегаплаты на минибот не всегда приходят данные на минибот, наоборот все нормально
-Переделать контроль получения кода (опрос флага CRC_OK, выдача OK при успешном приеме)
-Окончательно подчистить код


Вложения:
1.8.rar [15.94 КиБ]
Скачиваний: 22

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка кода общения 2х мегаплат на СС2500
СообщениеДобавлено: 12 мар 2009, 01:04 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Итак, первый абсолютно рабочий результат: код общения в обе стороны 2х мегаплат!
Есть особенности, может есть те, кто знают их, а для новичков и для тех кто не знает попробую их описать:
1) При прошивке есть разница, для мегаплаты код или для минибота, соответственно есть 4 строки, в которых для определенного железа должно быть раскомментировано соответственное:
Код:
$prog &HFF , &HAD , &HD7 , &HF8                             ' для мегаплаты
'$prog &HFF , &HE0 , &HDD , &HF9                             ' для минибота 2.0


Код:
Config Pinb.1 = Output : Zb_cs Alias Portb.1 : Zb_cs = 1    ' для мегаплаты
'Config Pinb.0 = Output : Zb_cs Alias Portb.0 : Zb_cs = 1    ' для МиниБот 2.0


2)Значения регистров freq2, freq1, freq0 ИС cc2500 у меня взяты по-умолчанию как в коде у Эда. Если идет несоответствие частоты мегаплат (требуется калибровка), этими регистрами можно выставить точное совпадение частот
Код:
Const Регистр_freq2 = &H0D                                  'подстройка при калибровке платы
Const Регистр_freq1 = &H0E                                  'подстройка при калибровкеплаты
Const Регистр_freq0 = &H0F                                  'подстройка при калибровке платы


3)При желании вы можете устанавливать какую предпочитаете мощность приемо-передатчика, код:
Код:
'Мощность приемо-передатчика
Число = &H44 : Gosub ЗаписатьВТаблицуМощностей              '44  '46   'HBF 'FB


Далее ниже прикладываю таблицу мощностей CC2500 и сам код конечно ;)


Вложения:
Комментарий к файлу: сам код
250kbps_in_out_mega88.rar [3.09 КиБ]
Скачиваний: 23
Комментарий к файлу: таблица мощностей
power.JPG
power.JPG [ 73.23 КиБ | Просмотров: 3035 ]

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RoboRF в МиниБоте
СообщениеДобавлено: 18 мар 2009, 02:16 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Откорректированная версия


Вложения:
1.85.rar [3.12 КиБ]
Скачиваний: 45

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RoboRF в МиниБоте
СообщениеДобавлено: 23 апр 2009, 20:09 
Не в сети

Зарегистрирован: 19 апр 2009, 22:48
Сообщения: 12
Откуда: Уфа
А есть уже код для посылки команд с ПК конкретно на Минибота? Чтобы он к примеру светодиодом моргал на определённую полученную команду, или включал двигатели?
А то, я так понимаю, он пока только текстовые сообщения с компьютера на компьютер пересылает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RoboRF в МиниБоте
СообщениеДобавлено: 23 апр 2009, 20:17 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Есть конечно! Вместе с Mega88 прошиваете Mega32 прошивкой: ЗДЕСЬ и можете как через радиоканал так и через ИК канал управлять миниботом

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 223 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 15  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO