Вопросы по С/С++ (СИ)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Roman Venom
Сверлит текстолит когтями
Сообщения: 1135
Зарегистрирован: Сб июл 11, 2009 18:42:21
Откуда: Украина, г.Николаев

Re: Вопросы по С/С++ (СИ)

Сообщение Roman Venom »

Аlex
Можно. Купить отладчик, который умеет ставить софтварные брекпоинты.
ICD 3 недёшево стоит, однако. :(
Успех - императив!
Реклама
Аватара пользователя
Goodefine
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Re: Вопросы по С/С++ (СИ)

Сообщение Goodefine »

Есть еще VSPE - полезная программа для работы с портами
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

Согласен. Но, он того стОит, если человек реально занялся PIC'ами и будет создавать не просто новогодние мигалки.
drac0Sha
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт окт 09, 2012 14:09:39

Re: Вопросы по С/С++ (СИ)

Сообщение drac0Sha »

так настроил compim. Дополнительную программу тоже настроил ( Terminal). Но почему то не могу понять как оно должно работать. При отправке из программы Terminal команды 0х33, никто не реагирует - ни virtual terminal, ни мк. Но если я нажму кнопку в virtual terminal в протеусе, то в программе Terminal отобразится какую я кнопку нажал.
Вот ссылка по которой я их настраивал и заодно по фотографии urry:
Вложения
схемаРадиокот2.PNG
(95.15 КБ) 309 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

Потому, что Вы выводом ТХ процессора "душите" сигнал с СОМ порта. USART - это интерфейс для связи только 2-ух устройств.
Реклама
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение urry »

-1 к внимательности - rx compim идет на rx контроллера.
И уберите терминал с передачи
Реклама
drac0Sha
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт окт 09, 2012 14:09:39

Re: Вопросы по С/С++ (СИ)

Сообщение drac0Sha »

Так, сделал вроде. При нажатии на кнопку send в Terminale у compim rxd зеленый меняется на красный, т.е. взаимодействие вроде идет. Но на команду реакции нету. Ничего не меняется и ответа нету. Если раньше, когда был просто подключен virtual terminal без compim'a, при нажатии на клавишу хотя бы какой то ответ шел в нужном формате. То сейчас вообще ничего не приходит.
Вложения
схемаРадиокот3.PNG
(216.09 КБ) 321 скачивание
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение urry »

Вы обладаете удивительным свойством - не слышать то, что вам говорят...
1 к внимательности - rx compim идет на rx контроллера.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

rx compim идет на rx контроллера.
На сколько мне известно, на СОМПИН'е подписаны внешние выводы СОМ порта. Т.е. , если написано RX, значит это вход на порте, соответственно, его нужно подключать к RX проца. СОМ: 2-ой ПИН - RX, 3-ий - TX.
Единственное непонятно, чем ТС смотрит посылку в протеусе ? Терминал то удалён. :dont_know:
drac0Sha
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт окт 09, 2012 14:09:39

Re: Вопросы по С/С++ (СИ)

Сообщение drac0Sha »

так ответ приходит.Надо оказывается набирать полный пакет вида $7E $01 $33 $( контрольная сумма)
Ребят, вопрос у меня есть команды 0х31, 0х32, 0х33, 0х34, 0х35 и мне нужно подсчитать контрольную сумму методом исключающее или с командой, как посчитать , например с 0х31 ?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

методом исключающее или с командой
Что это за метод такой ?
Если нужно просто сделать XOR с командой, то делайте его и пихайте в контрольную сумму.
drac0Sha
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт окт 09, 2012 14:09:39

Re: Вопросы по С/С++ (СИ)

Сообщение drac0Sha »

Аlex писал(а):
методом исключающее или с командой
Что это за метод такой ?
Если нужно просто сделать XOR с командой, то делайте его и пихайте в контрольную сумму.
вот получается, что мне нужно заранее посчитать, чтобы программа распознала пакет, так как я сейчас ввел неправильную контрольную сумму и она мне выдала сообщение, что неправильная контрольная сумма.
Вот в задании написано:
Контрольная сумма CS должна вычисляться сложением байтов поля message (команда, например, 0х33) при помощи операции «ИСКЛЮЧАЮЩЕЕ ИЛИ»( XOR).
Так вот как мне, например, для 0х33 сделать операцию XOR? Разве не нужно два аргумента? А у меня получается один - команда.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение urry »

unsigned char fn_KS(unsigned char * arr,unsigned char len)
{
unsigned char sum=0;
do
{
sum^=*arr++;
}while(--len);
return sum;
}
drac0Sha
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт окт 09, 2012 14:09:39

Re: Вопросы по С/С++ (СИ)

Сообщение drac0Sha »

спасибо ))) но я хотел узнать как вручную посчитать))
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

drac0Sha писал(а):я хотел узнать как вручную посчитать))
Тынц :)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение vitalik_1984 »

глядя на код urry можно мысленно посчитать
сначала сумма равна нулю, потом эту сумму Хорим с сообщением, так как в сообщении всего один элемент, то
0 XOR 0x31=0x31
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

Если сообщение из нескольких байт, то можно с помощью калькулятора дядюшки Билла :)
drac0Sha
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вт окт 09, 2012 14:09:39

Re: Вопросы по С/С++ (СИ)

Сообщение drac0Sha »

vitalik_1984 писал(а):глядя на код urry можно мысленно посчитать
сначала сумма равна нулю, потом эту сумму Хорим с сообщением, так как в сообщении всего один элемент, то
0 XOR 0x31=0x31
Получается, что она всегда контрольная сумма равна команде ?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

drac0Sha писал(а):Получается, что она всегда контрольная сумма равна команде ?
vitalik_1984 писал(а):так как в сообщении всего один элемент
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение vitalik_1984 »

если в сообщении будет к примеру 0x31 ,0x32,0x33 то считаем аналогично
(((0#0x31)#0x32)#0x33)=0x30
В моем калькуляторе # обозначает операцию XOR
Ответить

Вернуться в «Разные вопросы по МК»