roboforum.ru

Технический форум по робототехнике.
Текущее время: 04 дек 2024, 11:12

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Прием данных CRC8
СообщениеДобавлено: 14 фев 2013, 22:29 
Не в сети

Зарегистрирован: 14 фев 2013, 22:24
Сообщения: 3
Здрасте)) У меня возник такой вопрос. Написал я программу на C# для отправки символа по USART в виде контрол суммы.
Отправляется эта сумма очень просто:
port.Write(sendPacket, 0, sendPacket.Length);
sendPacket - наше значение CRC8 и sendPacket.Lenght - длина пакета
Кто работал с CRC8 или другими помогите пожалуйста, дайте пожалуйста функцию на С которая принимает такую инфу и
желательно если у кого нить есть проект то если можно то и его ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прием данных CRC8
СообщениеДобавлено: 14 фев 2013, 23:21 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
пример

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прием данных CRC8
СообщениеДобавлено: 01 мар 2013, 09:15 
Не в сети

Зарегистрирован: 14 фев 2013, 22:24
Сообщения: 3
noonv писал(а):

Я сделал код по твоему примеру. Он очень хороший и рабочий, но я использую софт на C#. Я пишу не на Ардуино, я могу принимать только char значения,а у тебя uint8_t. Но я в коде все поменял на unisgned char, но есть проблема. Я не знаю как слать данные с ПК :(((
Вот код для формирования CRC8
Код:
private void button1_Click(object sender, EventArgs e)
    {
        byte checksum;
        byte t = 255;   
        byte[] testVal = new byte[]{t};
        CRC8Calc crc = new CRC8Calc(CRC8_POLY.CRC8_CCITT);
        checksum = crc.Checksum(testVal);
        sp.Write(t.ToString());
        sp.Write(checksum.ToString());
    }

Я хочу отправлять числа на МК а это получается нельзя ((( И когда я шлю t.ToString() я наверно шлю "255", т.е. 3и символа.
Т.е. то что я тут шлю МК не воспринимает. Подскажите пожалуйста как с ПК слать данные на мк :((


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прием данных CRC8
СообщениеДобавлено: 01 мар 2013, 10:29 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
хоть изредка смотрите, что intellisense выдаёт или мсдн читайте, помогает. http://msdn.microsoft.com/ru-ru/library/ms143551.aspx.
Код:
public void WriteByte(byte data) { sp.Write(new byte[] { data }, 0, 1); }

или
Код:
byte[] ba = new byte[] { checksum };
sp.Write(ba, 0, 1);

или
Код:
byte[] ba = new byte[1];
ba[0] = checksum;
sp.Write(ba, 0, 1);
ba[0] = t;
sp.Write(ba, 0, 1);

или
Код:
sp.Write(new byte[] { checksum }, 0, 1);
sp.Write(new byte[] { t }, 0, 1);

или ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прием данных CRC8
СообщениеДобавлено: 01 мар 2013, 14:24 
Не в сети

Зарегистрирован: 14 фев 2013, 22:24
Сообщения: 3
Angel71 писал(а):
хоть изредка смотрите, что intellisense выдаёт или мсдн читайте, помогает. http://msdn.microsoft.com/ru-ru/library/ms143551.aspx.
Код:
public void WriteByte(byte data) { sp.Write(new byte[] { data }, 0, 1); }

или
Код:
byte[] ba = new byte[] { checksum };
sp.Write(ba, 0, 1);

или
Код:
byte[] ba = new byte[1];
ba[0] = checksum;
sp.Write(ba, 0, 1);
ba[0] = t;
sp.Write(ba, 0, 1);

или
Код:
sp.Write(new byte[] { checksum }, 0, 1);
sp.Write(new byte[] { t }, 0, 1);

или ...

Извини, просто С шарп знаю не долго, где то неделю, все время на qt c++ сидел, там легче все для меня.
Если делать потвоему методу то будет все отсылаться как символ или как число? просто у меня byte ассоциируется численная переменная, а регистр МК UDR принимает символы, что то вроде char((
Извини что говорю может где то глупости просто си шарп мне не знаком.
Код:
byte[] ba = new byte[] { checksum };
sp.Write(ba, 0, 1);

Этот метод мне знаком. Если на нем остановиться, то тут число как символ будет отправляться?
просто
Код:
public void Write(byte[] buffer,   int offset,int count)
я получается передаю байтовый буффер как символ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прием данных CRC8
СообщениеДобавлено: 01 мар 2013, 15:42 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
предыдущие сообщения не цитируют и не предыдущие тоже не всегда нужно цитировать. это же форум, а не почта.
по ссылке выше по русски написано, что делает ф-я. там же в мсдн есть справочник по типам и куча сопутствующих вещей разжёвано.
хз, что у вас с чем ассоциируется, что вы под чаром понимаете и что именно он из себя представляет в вашем компиляторе. смотрите какой тип у вас является байтом и ищите какая ф-я из уарта получает байты.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

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


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

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