Например TDA7294

Форум РадиоКот • Просмотр темы - Оптимизация кода и объединение двух проектов в один
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт янв 27, 2026 05:29:34

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 16:48:24 
Родился

Зарегистрирован: Пн фев 29, 2016 13:19:10
Сообщений: 14
Рейтинг сообщения: 0
Добрый день! Есть у меня одна задача для начинающего: сделать шестиканальный вольтметр с индикацией на HD44780 и передачей на ПК по USb. (схема прилагается - не плеваться, делал сам). Решил сразу писать на си (основы ассемблера знаю). Проблема в том что у меня получилось как бы два проекта: один чистый вольтметр на 6 каналов и индикацией (еле-еле справился), в второй передача данных по usb (нашел статью с разбором и исходником). В системе usb определяется как hid-устройство. Прошу помощи в объединении этих двух проектов и оптимизации кода, ибо сам не справился...

Вложение:
Hid устройство usb.rar [152.3 KiB]
Скачиваний: 175

Вложение:
Вольтметр.rar [68.58 KiB]
Скачиваний: 166

http://img.radiokot.ru/files/113737/med ... l61kq3.GIF


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 17:19:27 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 1
А на каком языке вы пытаетесь писать? Для usb-hid используется avr-gcc, да еще устаревший, а для вольтметра - cvavr что ли, к тому же, с кривым форматированием.
Выберите один язык (диалект) и напишите на нем.
Цитата:
Проблема в том что у меня получилось как бы два проекта
А мне кажется, что у _вас_ получилось не более 0.5 проекта: реализация usb-hid утащена с easyelectronics вообще без изменений, а в вольтметре больше половины занимают стандартные cvavr (или еще какие) библиотеки.
Таким образом, есть 3 варианта:
1. Ждать альтруистов
2. Идти в раздел "работа"
3. Разбираться. Вот в этом вам тут помогут, главное продемонстрируйте что готовы учиться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 17:30:45 
Родился

Зарегистрирован: Пн фев 29, 2016 13:19:10
Сообщений: 14
Рейтинг сообщения: 0
Мне все-таки ближе 3 вариант. Вольтметр написан под cvavr, и писать буду на нем. По сути чтобы реализовать usb-hid мне достаточно вместо 3 байт для передачи состояния светодиода сделать 6 для передачи значения каждого канала при опросе от ПК? Или лучше сделать 6 буферов, в которые писать значения каждого измерения, а затем, при опросе ПК их туда отправлять?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 17:48:58 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Tol19 писал(а):
Мне все-таки ближе 3 вариант. Вольтметр написан под cvavr, и писать буду на нем.

Хорошо. А собрать usb-hid на нем удалось? Кстати, надеюсь, cvavr выбран не ради автоконфигуратора? А то он ужасен...
Tol19 писал(а):
По сути чтобы реализовать usb-hid мне достаточно вместо 3 байт для передачи состояния светодиода сделать 6 для передачи значения каждого канала при опросе от ПК? Или лучше сделать 6 буферов, в которые писать значения каждого измерения, а затем, при опросе ПК их туда отправлять?

Если я правильно помню (а смотрел я давно, так что запросто могу ошибаться), по стандарту передавать больше 8 байт за раз нельзя. АЦП в AVR-ках 10-битный, так что можно разделить 6 каналов на 2 посылки по 3 измерения. Например, 3 старших бита - номер канала, потом 3 бита пустых и 10 бит данных. Можно добавить oversampling и поднять точность до 13 бит, например, тогда пустого места в посылках не останется.
Опрашивать АЦП, наверное, лучше в прерывании.
На чем будете писать программу на стороне ПК и что она будет уметь делать?


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 17:54:26 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
COKPOWEHEU писал(а):
Если я правильно помню (а смотрел я давно, так что запросто могу ошибаться), по стандарту передавать больше 8 байт за раз нельзя.
Если Вы про HID, то ошибаетесь. А на счет V-USB я ничего не знаю.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 18:09:45 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2933
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24757
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
COKPOWEHEU писал(а):
Если я правильно помню (а смотрел я давно, так что запросто могу ошибаться), по стандарту передавать больше 8 байт за раз нельзя.

Ошибаетесь.
Предел для HID USB - 64 байта за 1 кадр (1 мс) в одну сторону. То есть 64 кбайт/сек.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 18:38:38 
Родился

Зарегистрирован: Пн фев 29, 2016 13:19:10
Сообщений: 14
Рейтинг сообщения: 0
USB-HID собрал, работает, с этим нет проблем. на easyelectronics для программы на ПК используют С++. Я попробую использовать C#. По сути, данное устройство является попыткой написать заново USB-осциллографа: http://cxem.net/izmer/izmer77.php. В том случае, исходник программы был написан на C#, я оставил только работу с библиотекой связи с USB, остальное переписал с нуля используя компонент zedgraph. По сути ПК принимает от устройства буфер из точек, и соединяет их линией. В новом устройстве чуть-чуть другая задача: рисовать осцилограмму на ПК одновременно с 6 каналов на разных графиках, и контроллировать заданный уровень напряжения на канале. Если он становится меньше, на ПК выходит предупреждение. Вот ка-то в краткости так...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 19:09:48 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Спасибо что поправили.
Тогда можно слать все 6 каналов одним пакетом. Впрочем, 6 каналов по 10 бит это 60 бит или чуть менее 8 байт, так что и в 8-байтный пакет уложиться можно если сжимать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 20:20:34 
Родился

Зарегистрирован: Пн фев 29, 2016 13:19:10
Сообщений: 14
Рейтинг сообщения: 0
Тогда посоветуйте, пожалуйста, в каком направлении дальше двигаться


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вс ноя 06, 2016 21:14:47 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Обработка АЦП и запись результатов в буфер.
По запросу хоста собирать их в пакет и выдавать по usb.
Раз в определенное время обновлять информацию на ЖК. Можно добавить условие, что информация в буферах должна измениться, но это уже к оптимизации.
В чем проблема-то?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Вт ноя 08, 2016 20:06:09 
Родился

Зарегистрирован: Пн фев 29, 2016 13:19:10
Сообщений: 14
Рейтинг сообщения: 0
Проблема в том, что вольтметр собран под codevision, а вот usb-hid под avr studio. Помогите разобраться, как перенести вольтметр из codevision? Как прикрутить библиотеки к проекту?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Ср ноя 09, 2016 00:09:16 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Tol19 писал(а):
USB-HID собрал, работает, с этим нет проблем.
То есть все-таки не собрали usb-hid в cvavr.
Цитата:
Помогите разобраться, как перенести вольтметр из codevision? Как прикрутить библиотеки к проекту?
В чем именно вопрос? Как добавить файл исходного кода к проекту, как вообще писать на Си или даташитовские способы работы с АЦП?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Ср ноя 09, 2016 20:08:15 
Родился

Зарегистрирован: Пн фев 29, 2016 13:19:10
Сообщений: 14
Рейтинг сообщения: 0
Нет не получилось, так как вариант usb-hid под cvavr не сможет работать (вычитано на просторах сети), только в avrstudio. Поэтому я хочу в готовый код usb-hid дописать вольтметр и индикацию. И основная проблема в индикации, так как у меня не получается работать в avrstudio с библиотекой lcd.h от cvavr


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Ср ноя 09, 2016 20:12:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18454
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Tol19 писал(а):
основная проблема в индикации, так как у меня не получается работать в avrstudio с библиотекой lcd.h от cvavr
а вы не используйте библиотеки от CVAVR, а используйте библиотеки под AVR-GCC, например, вот так

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Оптимизация кода и объединение двух проектов в один
СообщениеДобавлено: Ср ноя 09, 2016 20:37:14 
Родился

Зарегистрирован: Пн фев 29, 2016 13:19:10
Сообщений: 14
Рейтинг сообщения: 0
Нашел один пример: http://radioparty.ru/prog-avr/program-c ... on-lib-lcd Но студия вываливается с ошибками. Вот сам проект:
Вложение:
GccApplication3.rar [16.53 KiB]
Скачиваний: 156


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

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


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y