Например TDA7294

Форум РадиоКот • Просмотр темы - Нужна комплексная помощь в освоении АВРок
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Чт окт 22, 2020 02:59:22

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


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



Начать новую тему Ответить на тему  [ Сообщений: 58 ]  1, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 06:58:23 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
Всем доброго времени суток. В связи с одной задумкой ("детской мечты" :wink: ) сообираю одну вещь. Но не суть.
Короче говоря начал изучать АВРы и столкнулся с кучей не понятных и необъяснимых дел. И что и как понять не могу. Пытаюсь разобраться путаюсь и все с начало.
Мой софт: Proteus и CVAvr 2.05/
Собрать пытаюсь радиоуправление. (2 пропорциональных и 8 дискретных команд) Но пока не до него.
И так mega8 на кварце 16МHz
Проблема пока заключается в том что я ни как не могу настроить АЦП чтоб каждый потенциометр имел свое значение переменной (которая потом будет использоваться для длины импульса канала) и двигая потенциометры, каждая переменная меняла свое значения....

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 07:09:08 
Мудрый кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 62
Зарегистрирован: Пн ноя 29, 2010 15:58:43
Сообщений: 1797
Рейтинг сообщения: 0
видимо самое простое решение вашего вопроса: в бесконечном цикле опрашивать Ацп канал 0 и присваивать значение в переменную 0 , потом опрашивать Ацп канал 1 и присваивать его значение в переменную 1. потом в этот же цик можно добавить опрос кнопок. ну и т.д.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 07:14:27 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
Логично. Именно такая задумка. Чтоб управлять Входами АЦП нужно выбирать между ADMUX0 и ADMUX1?

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 07:22:40 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вт июл 08, 2014 14:27:38
Сообщений: 27
Откуда: Славянск-на-Кубани
Рейтинг сообщения: 0
вот пример кусок кода для Mega8
Цитата:
/***Настройка АЦП***/
ADCSRA |= (1 << ADEN) //Включение АЦП
|(1 << ADPS1)|(1 << ADPS0); // предделитель преобразователя на 8
ADMUX |= (0 << REFS1)|(0 << REFS0) // внешний ИОН
|(0 << MUX0)|(0 << MUX1)|(0 << MUX2)|(0 << MUX3); // вход PC0
_delay_ms(100);

этот кусок кода получает значения со входа PORTC0 и записывает в переменную "h"
ADMUX = 0b00000000;// вход РС0 <<меняя входа можно последовательно считать все входы АЦП в разные переменные
ADCSRA |= (1 << ADSC); //Начинаем преобразование
while ((ADCSRA&(1 << ADIF))== 0); //Ждем флага окончания преобразования
h=ADC;

_________________
Изображение Истина где то рядом :-)


Вернуться наверх
 
Как сократить время вычислений и освободить ресурсы центрального процессора?

Цифровые фильтры применяются в системах цифровой обработки сигналов (ЦОС) для решения двух основных задач: разделения и восстановления сигналов. Такие задачи могут решаться программными и аппаратными методами. Для их решения удобно использовать аппаратный цифровой фильтр FMAC, входящий в состав микроконтроллеров семейства STM32G4.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 07:36:35 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
ADCSRA |= (1 << ADEN) //Включение АЦП (все ножки порта С)
|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0); // предделитель преобразователя на 128 (в моем случае (16.000\128=125 КГц)
ADMUX |= (0 << REFS1)|(0 << REFS0) // внешний ИОН (ножка AREF)
|(0 << MUX0)|(0 << MUX1)|(0 << MUX2)|(0 << MUX3); // вход PC0
_delay_ms(100);

Правильно понял? И вся эт о настройка пишется в функции main?

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!


Вернуться наверх
 
STM32L562E-DK – первая отладочная платформа ST на ядре ARM Cortex-M33

STMicroelectronics представляет демонстрационно-отладочную платформу на базе ядра Cortex-M33 – STM32L562E-DK. Данная платформа основана на микроконтроллере нового семейства – STM32L5. STM32L562E-DK позволяет разработчику в полной мере раскрыть и опробовать новые возможности микроконтроллеров STM32L5 с тщательно проработанным функционалом для обеспечения высокого уровня безопасности и защиты.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 07:40:02 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 53
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Цитата:
Включение АЦП (все ножки порта С)

Вот здесь не совсем так. одновременно у Вас может быть подключена только одна нога из. Там входной мультиплексор. А выбор ноги как раз и задается битами (0 << MUX0)|(0 << MUX1)|(0 << MUX2)|(0 << MUX3). Остальные ноги, пока опрашиваете данную, могут быть задействованы программно в других целях.
Настройка может писаться в любой функции. А произведена настройка будет как только Вы эту функцию вызовете.
Делать задержку в 100 мс после настройки также необязательно.

_________________
Fucking static initialization order fiasco


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 07:56:20 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
Вот щас не понял, то есть мне придется для каждой ноги делать настройку отдельно?
а так не пойдет?
ADCSRA |= (1 << ADEN) //Включение АЦП (все ножки порта С)
|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0); // предделитель преобразователя на 128 (в моем случае (16.000\128=125 КГц)
ADMUX |= (0 << REFS1)|(0 << REFS0) // внешний ИОН (ножка AREF)

void opros1 (void)
{
ADMUX = 0b00000000;// вход РС0
ADCSRA |= (1 << ADSC); //Начинаем преобразование
while ((ADCSRA&(1 << ADIF))== 0); //Ждем флага окончания преобразования
data1=ADC; запись результата в data1
}
void opros2 (void)
{
ADMUX = 0b00000001;// вход РС1
ADCSRA |= (1 << ADSC); //Начинаем преобразование
while ((ADCSRA&(1 << ADIF))== 0); //Ждем флага окончания преобразования
data2=ADC; запись результата в data2
}

можно объденить все в одну функцию

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 08:10:55 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 53
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
АЦП у Вас один. а вот входов у него много. Поэтому АЦП настраивается ОДИН раз, а нужный вход выбирается по мере надобности.
Поэтому пойдет, но не совсем так.
Цитата:
ADMUX = 0b00000000
не совсем правильно. не забываем, что в данном регистре присутствуют биты выбора источника опорного напряжения для преобразования. Если у Вас ИОН внешний (REF0 и REF1 равны 0), то можете и так перенастраивать, а вот если нет, то таким образом Вы сбросите настройку ИОНа.
Правильно будет так:
Код:
ADMUX &= 0b00000111 // Сбрасываем предыдущую настройку
ADMUX |= 0b00000nnn // Делаем новую
, где nnn - двоичный номер канала.
Еще советую полистать даташит на досуге - там описаны все регистры и установки номеров каналов. А еще параллельно даташиту скачайте себе Евстифеева "AVR Tiny Mega 2008 г." Только верить на слово Евстифееву не стоит - там обобщенные сведения.

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 08:45:10 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
ИОН внешний AREF и AVCC +5в к стабилизатору 7805. Так что смысла нет, вот взял прогнал в протеусе, и в этой строке
while ((ADCSRA&(1 << ADIF))== 0); //Ждем флага окончания преобразования
программа ушла в бесконечность...
В чем подвох???


Вложения:
ypr.rar [38.64 KiB]
Скачиваний: 121

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 09:08:53 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1765
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15428
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Pink-Pank писал(а):
А выбор ноги как раз и задается битами (0 << MUX0)|(0 << MUX1)|(0 << MUX2)|(0 << MUX3). Остальные ноги, пока опрашиваете данную, могут быть задействованы программно в других целях.
по-моему, так лучше не делать, да и вряд ли получится по схемотехнике.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 10:03:52 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 53
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Цитата:
программа ушла в бесконечность...
В чем подвох???

Может, недостаточно долго ждали? в коде вроде все норм.
Единственное замечание - нужно сбрасывать флаг окончания измерения после его завершения - контроллер сам этого за Вас не сделает (точнее сделает, если оформите все через прерывание, а так - нет).

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 10:17:16 
Друг Кота

Карма: 45
Рейтинг сообщений: 244
Зарегистрирован: Чт фев 20, 2014 18:57:55
Сообщений: 12350
Рейтинг сообщения: 0
edj90 писал(а):
Всем доброго времени суток. В связи с одной задумкой ("детской мечты" :wink: ) сообираю одну вещь. Но не суть. Короче говоря начал изучать АВРы и столкнулся с кучей не понятных и необъяснимых дел.

если у вас цель собрать что то, а не изучить авр - можно было бы начать с ардуины какой нибудь, там свои тараканы, но, по крайней мере, на вопросах "дергания ног", там не спотыкаешься обычно

edj90 писал(а):
Собрать пытаюсь радиоуправление. (2 пропорциональных и 8 дискретных команд) Но пока не до него.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Вт июл 22, 2014 14:04:46 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вт июл 08, 2014 14:27:38
Сообщений: 27
Откуда: Славянск-на-Кубани
Рейтинг сообщения: 0
edj90 я эти куски кода расположил просто в цикле while() один за одним и собираю данные с трех разных датчиков три переменные. Инфу вывожу на ЖКИ
Цитата:
ADMUX = 0b00000000;// вход РС0
ADCSRA |= (1 << ADSC); //Начинаем преобразование
while ((ADCSRA&(1 << ADIF))== 0); //Ждем флага окончания преобразования
data1=ADC; запись результата в data1

_________________
Изображение Истина где то рядом :-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Ср июл 23, 2014 05:49:42 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
Pink-Pank писал(а):
Может, недостаточно долго ждали? в коде вроде все норм.

Думаю 1 мин хватит, даже для 1МГц, а у меня 16, но думаю в протеусе не выставил частоту проца, поэтому и не проходит деление...

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Ср июл 23, 2014 06:46:01 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вт июл 08, 2014 14:27:38
Сообщений: 27
Откуда: Славянск-на-Кубани
Рейтинг сообщения: 0
В некоторых версиях протеуса есть странный глюк, не работает АЦП на восьмой Меге. У меня так было на старой версии протеуса, поставил версию 7.10 и все пошло.

_________________
Изображение Истина где то рядом :-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Пт июл 25, 2014 08:10:45 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
Блин, ребят, подскажите как в протеусе выставить частоту МК, все перешарил, понять не могу....

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Пт июл 25, 2014 08:38:09 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 53
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 1
Дважды щелкаете по контроллеру - там внизу прописываете нужное значение циферками вместо слова default

_________________
Fucking static initialization order fiasco


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Ср июл 30, 2014 01:38:39 
Открыл глаза

Зарегистрирован: Ср апр 09, 2014 13:53:14
Сообщений: 70
Откуда: Владивосток
Рейтинг сообщения: 0
спасибо разобрался, вроде все проходит, но значения data1 и data2 не меняются.....

_________________
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Ср июл 30, 2014 07:12:56 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вт июл 08, 2014 14:27:38
Сообщений: 27
Откуда: Славянск-на-Кубани
Рейтинг сообщения: 0
В ПРОТЕУСЕ у микроконтроллера есть такой вывод AREF его в схеме нужно подключить к питанию или +5 вольт

_________________
Изображение Истина где то рядом :-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна комплексная помощь в освоении АВРок
СообщениеДобавлено: Ср июл 30, 2014 09:45:40 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 53
Зарегистрирован: Ср июн 11, 2014 09:43:13
Сообщений: 721
Откуда: США
Рейтинг сообщения: 0
Напряжение на нем должно быть в пределах от 1 Вольт до Напряжения питания контроллера. Этим выводом задается напряжение относительно которого совершает измерения АЦП и ряда другой аналоговой части МК.

_________________
Fucking static initialization order fiasco


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

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


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

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


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

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


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