реклама на сайте
подробности

 
 
> Типы данных СИ или как переслать четыре байта, просветите пожалуйста
morpher
сообщение Mar 3 2008, 13:28
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 3-03-08
Пользователь №: 35 586



Начал понемногу изучать контроллеры заодно приходится и СИ. МК – PIC18, компилятор – MCC18. Пишу на основе CDC(эмуляция COM-порта). Задача состоит в том что нужно отслеживать события модуля ССР в режиме захвата и посылать на комп значения интервалов между каждым положительным фронтом. Вроде разобрался с захватом и таймером но не могу послать результат(точнее могу но принимаю непонятно что). Чтобы короче только кусочки кода.

char str[64];
unsigned result;

result = ReadCapture1();
ultoa(result,str);

if(mUSBUSARTIsTxTrfReady())
{
mUSBUSARTTxRam((byte*)str,6 );
}
(склеено из разных демок, все левое пропущено, осталось только то, что меня интересует)
Вопрос №1: правильно ли использовать ultoa(result,str) по отношению к массиву str?

Это первоначальный вариант поскольку оказалось что интервалы между фронтами могут превышать 1сек соответственно пришлось учитывать переполнение. В результате отправлять уже надо не unsigned int а unsingned long. Но преобразовывать в строку не хочу поскольку как я понимаю: если result = 65535, то после ultoa(result,str) будет- str[0] =’6’,str[1] = ‘5’ итд. Зачем длинная строка если можно unsingned long разделить на 4 байта и записать в каждый эл. массива отдельно. Вот только как выделить отдельные байты из long на СИ я не знаю. Просветите пожалуйста как правильно конвертнуть unsingned long.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
morpher
сообщение Mar 3 2008, 14:48
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 3-03-08
Пользователь №: 35 586



Я понимаю что синтаксис СИ почти одинаков для разных версий, я неправильно выразился. Но документации на компилятор может и нехватать, особенно при условии незнания языка вообщем. Просто должны же быть книги ориентированные на конкретные компиляторы с множеством разнообразных примеров. Я нашел по Hi-Tech но у меня собственно его нету, да и примеры портировать долго будет, а при моем знании языка вообще невозможно. А вот по мсс18 книг на русском я не видел вообще, а хотелось бы.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 3 2008, 15:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(morpher @ Mar 3 2008, 17:48) *
Но документации на компилятор может и нехватать

Так не бывает... По крайней мере на начальном этапе освоения.
Цитата
, особенно при условии незнания языка вообщем.

Так вот с этого и начните. Книжек по программированию железа для не знающих ни языка не железа не существует. Хотя я не прав - можете в качестве образца взять инстукцию по программированию, например, мироволновой печи.
Цитата
Просто должны же быть книги ориентированные на конкретные компиляторы с множеством разнообразных примеров.

Ага, например, книги кулинарных рецептов - множество разнообразных примеров ориентированных на конкретные продукты. Полная иллюзия простоты приготовления самых разнообразных блюд, но никаких шансов без предварительного базиса.
Цитата
...книг на русском я не видел вообще, а хотелось бы.

Для начала о Великом и Могучем следует забыть навсегда.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 00:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.02268 секунд с 7
ELECTRONIX ©2004-2016