FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Суббота, 18.11.2017, 11:19
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей, Олег, Anydy 
Форум » Основной » Спросить у знатоков » Проблема с переменными !!! (необходимо разные типы переменных превращать в массив uint8_)
Проблема с переменными !!!
zikkgaz24 Дата: Вторник, 31.10.2017, 01:21 | Сообщение # 1
Майор
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 0
Статус: Offline
Суть такова использую библиотеку для радиопередачи и к сожалению эта библиотека может передовать только массив uint8_t  размер массива до 251 байта  т.е. размер передоваемых данных неплохой а вот ограничение на передачу только uint8_t портит все .
пока получилось передовать String  помог слиммпер но времени у него мало дальше как говориться сам 
но увы ничего внятного и конкретного в инете не могу найти 
Вопрос кто хорошо знает как это делать и кто покажет и расскажет как прийти к правильному решению 
 в первую очереть нужен тип int и float
 
Sancho Дата: Вторник, 31.10.2017, 08:34 | Сообщение # 2
Генерал-майор
Группа: Проверенные
Сообщений: 519
Награды: 14
Репутация: 16
Статус: Offline
Как я понял, Вы хотите упаковать int и float в массив типа uint, передать, на другой стороне собрать обратно?
Пример в студию, не вижу больших сложностей.


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
zikkgaz24 Дата: Вторник, 31.10.2017, 13:14 | Сообщение # 3
Майор
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 0
Статус: Offline
нет не так повторюсь 
есть библиотека и она незнаю почему но написана так что передает переменную типа uint8_t и больше никак даже по логике переменная типа byte тоже самое но если обьявить байт ничего не передает 
вообще там получаеться массив uint8_t до 251 байта передачи одного пакета данных 
и по примерам этой библиотеки это unsigned char но и так переменную обьявлять толку нет 
я делаю пользовательские блоки для передачи данных сделан только один тип это String помог слиммпер 
это самое простое т.к. string раскладываеться побайтно в массив и они очень близки друг другу 
хочу сделать блоки для передачи флоат , также int , можно и все виды переменных сделать какие есть 
но копаясь по инету я немогу найти то что надо 
получаеться библиотека передает переменную обьемом 1 байт  uint8_t  
а вот например тот же int 2 байта и эту переменную нужно сначало перевести в массив а потом отправлять 
флоат 4 байта и тоже самое нужно перевести в массив uint8_t и потом отправлять 
вот с переводом этих переменных в массив uint8_t и проблема 
надо коды под каждую переменную и так чтоб получилось совместить с блоком пользователя

Добавлено (31.10.2017, 13:14)
---------------------------------------------


 
zikkgaz24 Дата: Вторник, 31.10.2017, 13:16 | Сообщение # 4
Майор
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 0
Статус: Offline
вот пример
Прикрепления: rf95_reliable_d.pde(3Kb)
 
Sancho Дата: Вторник, 31.10.2017, 15:06 | Сообщение # 5
Генерал-майор
Группа: Проверенные
Сообщений: 519
Награды: 14
Репутация: 16
Статус: Offline
Всё делается просто через указатели.
Объявляешь массив uint8_t с фиксированной размерностью.
Потом в него заносишь разобранные переменные в виде байтов в жёстко заданной последовательности, на другой стороне собираешь по такой-же последовательности.
Возьми примеры для 24С32 с интами и флоатами - сразу поймёшь идею, если что - помогу.


Если не получится на контроллере - сделаю на тразисторах и 155/176...

Сообщение отредактировал Sancho - Вторник, 31.10.2017, 15:06
 
zikkgaz24 Дата: Вторник, 31.10.2017, 15:11 | Сообщение # 6
Майор
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 0
Статус: Offline
ок ща загружу
 
Sancho Дата: Вторник, 31.10.2017, 15:17 | Сообщение # 7
Генерал-майор
Группа: Проверенные
Сообщений: 519
Награды: 14
Репутация: 16
Статус: Offline
Пример разборки по одному int и float
int int1;
float float1;


Пример сборки

P.S.   Я не программист!


Если не получится на контроллере - сделаю на тразисторах и 155/176...

Сообщение отредактировал Sancho - Вторник, 31.10.2017, 15:21
 
zikkgaz24 Дата: Вторник, 31.10.2017, 15:27 | Сообщение # 8
Майор
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 0
Статус: Offline
так глянул 
и вот с этими операциями то и проблема у меня 
твои блоки для  еепром просто раскладывают переменные на byte  и записывают  и наоборот 
в моем случае byte  не канает только uint8_t
ну а как раскладывать и складывать я и не могу добиться вечно какие нибудь ошибки 
проще говоря я в этом ноль и не понимаю всю эту кашу
 
Sancho Дата: Вторник, 31.10.2017, 15:33 | Сообщение # 9
Генерал-майор
Группа: Проверенные
Сообщений: 519
Награды: 14
Репутация: 16
Статус: Offline
Если, например, будут только инты, то создав массив будет ещё проще- циклом, меньше писанины!
Если блок "использовать в проекте один раз", то массив создать не в ПБ(польз. блок), а на плате, а в самом ПБ указать его название(массива) после предварительной компиляции в IDE - подсмотреть навание, или подправлять потом, перед компиляцией.

Добавлено (31.10.2017, 15:33)
---------------------------------------------

Цитата zikkgaz24 ()
и вот с этими операциями то и проблема у меня твои блоки для  еепром просто раскладывают переменные на byte  и записывают  и наоборот 
в моем случае byte  не канает только uint8_t
Чудак - человек. это УКАЗАТЕЛИ!!!
Они работают с ячейками памяти. Сначала раскладываем и записываем по адресам массива как байты, когда наступает очередь передачи они уходят как uint!!!!!!!!!!!!!
И наоборот при приёме!!!!!


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
zikkgaz24 Дата: Вторник, 31.10.2017, 16:47 | Сообщение # 10
Майор
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 0
Статус: Offline
вот глянь блоки там мне слимпер помог со string
и он вынес конвертацию string в массив uint8_t в отдельную функцию за счет которой блоки отправки не продят один и тот же код
и мне как раз и надо
блоки отдельные для передачи\приема int
блоки передачи \ приема float
никаких смесей с разными переменными ненужно это и не удобно

Добавлено (31.10.2017, 16:05)
---------------------------------------------
вот блоки

Добавлено (31.10.2017, 16:08)
---------------------------------------------
блоки
так не крепяться

Добавлено (31.10.2017, 16:47)
---------------------------------------------
все на ура в пример вставил все пошло как надо теперь буду в функцию варганить


Сообщение отредактировал zikkgaz24 - Вторник, 31.10.2017, 16:53
 
Sancho Дата: Вторник, 31.10.2017, 16:56 | Сообщение # 11
Генерал-майор
Группа: Проверенные
Сообщений: 519
Награды: 14
Репутация: 16
Статус: Offline
Цитата zikkgaz24 ()
все на ура в пример вставил все пошло как надо теперь буду в функцию варганить
Пожалуйста.


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
Слимпер Дата: Вторник, 31.10.2017, 17:04 | Сообщение # 12
Генерал-полковник
Группа: Проверенные
Сообщений: 1008
Награды: 55
Репутация: 43
Статус: Offline
Sancho, Может подскажет где популярно написано про указатели, несколько раз читал, так у меня в голове не как не укладывается.
А то читаю ваше Сообщение за номер 7, и хоть и догадываюсь как что там должно происходить но часть операторов понять не могу.

А из-за этого уже не раз приходилось огород городить. 
Но так как читал, что при неправильном использовании указателей можно создать почти не уловимые глюки, то опасаюсь их (указатели) использовать.
 
zikkgaz24 Дата: Вторник, 31.10.2017, 17:10 | Сообщение # 13
Майор
Группа: Проверенные
Сообщений: 132
Награды: 0
Репутация: 0
Статус: Offline
Слимпер, тут код с указателями на память 
инфа в инете вся лежит только понять тяжело я сам все это читал и ни че не понял щас вот покозал и рассказал про код и что он делает и немного понял а так книгу нужно искать там вроде понятней всего написано 
вот ее и нет в инете
 
Sancho Дата: Вторник, 31.10.2017, 17:16 | Сообщение # 14
Генерал-майор
Группа: Проверенные
Сообщений: 519
Награды: 14
Репутация: 16
Статус: Offline
Цитата Слимпер ()
Может подскажет где популярно написано про указатели
Для меня вот здесь показалось наиболее доходчиво, сам только учусь.
Надеюсь поможет.


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
Слимпер Дата: Вторник, 31.10.2017, 17:20 | Сообщение # 15
Генерал-полковник
Группа: Проверенные
Сообщений: 1008
Награды: 55
Репутация: 43
Статус: Offline
Sancho, спасибо, почитаю.
 
Форум » Основной » Спросить у знатоков » Проблема с переменными !!! (необходимо разные типы переменных превращать в массив uint8_)
Страница 1 из 212»
Поиск:

FLProg © 2017
Яндекс.Метрика