Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 17 май 2024, 06:53

Часовой пояс: UTC + 3 часа [ Летнее время ]



Начать новую тему Ответить на тему  [ Сообщений: 117 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11, 12  След.
Автор Сообщение
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 19 янв 2012, 22:05 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545
Допустим есть у нас число 0xFFFFFFFF. что в десятичном виде 4294967295. В числе 10 десятичных разрядов. Нужно получить массива вида 4,2,9,4,9,6,7,2,9,5. потом к каждому элементу массива прибавить 0х30. В итоге получаем в массиве коды символов ASCII соответствующие числам.

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 20 янв 2012, 18:59 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Вот нашёл таблицу кодов ASCII, буду смотреть как преобразовать. Но это для меня не самое главное на этом участке. А вот то что мне будет необходимо передавать пакеты по 8 бит, а вот как потом в программе для ПК соединить эти пакеты вместе, что бы воспроизводилось в таком виде 429`967`295?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 20 янв 2012, 19:51 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545
Ну передаёшь так:
коды символов
4
2
9
9
6
7
2
9
5
символ перевода строки

на ПК вылезает строка 429967295 а следующее число с новой строчки.
Потом всё это в файл складывается и на обработку

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 20 янв 2012, 21:01 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
И всё, так просто! :D Спасибо, теперь буду знать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 22 янв 2012, 07:59 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Анатолий, вот написал программу для счёта импульсов и передаче полученного значения на ПК по UART. Краткое описание алгоритма. Таймер_1 считает импульсы генератора, по переполнению уходим на прерывание и увеличиваем на 1 старшие 2 байта 32_х разрядного массива. Затем смотрим не произошло ли переполнение старших 2 байта 32_х разрядного массива. Если они равны FFFF, то увеличиваем на 1 регистр r14 и обнуляем 2 старших байта 32_х разрядного массива. Затем таймер_1, сбрасываем. И так продолжается пока не наступит прерывание по совпадению. В прерывании по совпадению сохраняем значение ICR1 в младшие 2 байта 32_х разрядного массива. 32_х разрядный массив программного счётчика переписываем во временный массив, его обнуляем для накопления новых данных. Данные из временного массива преобразуем в строку и передаём по UART. Передача данных на ПК будут происходить после каждого импульса совпадения. Таким образом получаем количество тиков от сигнала совпадения до сигнала совпадения, то есть между фронтами совпадений. Вид записи на ПК планировался такой, каждое новое значение будет начинаться с новой строки, в скобках количество переполнений 2_х старших байта 32_х разрядного массива:
(0)4’033’240’175
(0)4’003’180’035
(0)8’150’078

Проверьте правильность по феншую. Старался прокомментировать по максимуму. Переполнение 2_х старших байта 32_х разрядного массива контролирую пока временно, для того чтобы отследить будет это происходить или нет, если значение будет далеко от переполнения, то этот контроль уберу.
DAVLENIE.zip [9.71 КБ]
Скачиваний: 461


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 22 янв 2012, 23:45 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545
Посмотрел код. Во первых всё-таки я бы рекомендовал почитать книжку по программированию. Да-бы избежать возможный непоняток и недоразумений. К великому сожалению путаетесь в терминах. Массив это несколько другое. Это если просто набор переменных. следующих друг за другом. У вас массивом можно назвать набор import_0 import_13. (хотя по логике export). У вас rrrr10 и rrrr28 , просто здоровая переменная. В си этот тип LONG или даже DUBLELONG. В зависимости от компилятора.
Ну в общем несколько избыточных операций. Вы работаете с 1одной 32 разрядной переменной. А я бы работал с 2 по 16 разрядов. И объединил их только в момент преобразования в десятичный вид. Тогда бы не пришлось накладывать маски.
Работать с UART надо в прерывании. Выпихнули символ прошло прерывание и выпихнули следующий. А так просто в пустую время занимаете. ТК у вас import_0-import_13 расположены последовательно обращайтесь к ним по адресам. например к 10 элементу адрес import_0+10. как дошли до 14 элемента то отменяем прерывание по буфер передатчика пуст.

Ну и замечания обьщего характера. UART это не шина это устройство. RS-232 это соеденение. A RS-485 это уже шина. Шина она же магистраль подразумевает подключение нескольких устройств на одном интерфейсе. RS-232 этого не позволяет. UART c выходом с TTL уровнем то-же. Значит это не шина.

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 23 янв 2012, 17:15 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Так и есть с терминами и определениями общего характера, проблема. :mrgreen: Спасибо за разъяснения, что и как.

Что касается избыточности операций. На мой дилетантский взгляд, :-) я по сути и работаю в основном с двумя переменными. В прерывании по переполнению на 1 увеличиваю регистр ZL (это старший байт r30), а по совпадению значение ICR1 копирую в регистр W, а его складываю с регистром Y (это младшие 2 байта). Всё остальные переменные, это пока временно.

Работать с UART в прерывании была такая мысль, но так как МК и так в принципе ни чего не делает, а только работает в прерываниях, то вот и решил немного загрузить основную программу. А вот как правильно написать обращения к массиву по адресам то тут я ещё затрудняюсь, так как об этом не думал. Но спасибо за подсказку, надо подумать как это сделать.
Но все Ваши замечания учитываю, они идут только на пользу. :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 23 янв 2012, 19:26 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Да..а..а, что то моих познаний не хватает для того что бы по UART в прерывании выпихнуть по отдельности те символы которые написал в основной программе. :?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 24 янв 2012, 16:09 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Попытался учесть все замечания и вот что получилось, версия 2. Ожидаю оценки данной версии. Что необходимо ещё поправить или переделать?


Вложения:
DAVLENIE_v2.zip [9.38 КБ]
Скачиваний: 427
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Изготавливаем датчик атмосферного давления
СообщениеДобавлено: 24 янв 2012, 16:41 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545
Вроде всё правильно. Я бы выводил немного в другом виде . (число) пробел количество (переполнений) новая строка
Так обрабатывать удобнее будет. Ну думаю можно начинать пробовать. :geek:

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 117 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11, 12  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

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