Например TDA7294

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





Текущее время: Вт апр 16, 2024 16:43:42

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


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



Начать новую тему Ответить на тему  [ Сообщений: 3134 ]     ... , , , 126, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Вт дек 20, 2016 12:57:12 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Подскажите пожалуйста можно ли менять скважность шим сигнала переменным резисторам, что бы значение не фиксированное в коде было. А принимало значение в зависимости от сопротивление скажем резистора в данный момент. Или как правильно это сделать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Вт дек 20, 2016 13:36:19 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
strengerst писал(а):
можно ли менять скважность шим сигнала переменным резисторам
ну а в чем проблема-то? скважность определяется содержимым регистр OCR1A (например), ну так и делайте в нужном месте OCR1A = adc_get_resistor_value();, например, в главном цикле...

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Ср дек 21, 2016 07:45:59 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Цитата:
ну а в чем проблема-то? скважность определяется содержимым регистр OCR1A (например), ну так и делайте в нужном месте OCR1A = adc_get_resistor_value();, например, в главном цикле...

Не понимаю как значение сопротивление резистора передать OCR1A. С помощью АЦП как то. Я так думая что контролер должен замерять значение сопротивления и передовать и записывать это значение в переменную с которой можно было бы уже работать.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Ср дек 21, 2016 08:09:12 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 665
Откуда: Пермь
Рейтинг сообщения: 0
http://easyelectronics.ru/avr-uchebnyj- ... e-acp.html

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Ср дек 21, 2016 09:23:14 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Спасибо почитаю.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Ср дек 21, 2016 10:31:14 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 522
Рейтинг сообщения: 0
strengerst писал(а):
Цитата:
ну а в чем проблема-то? скважность определяется содержимым регистр OCR1A (например), ну так и делайте в нужном месте OCR1A = adc_get_resistor_value();, например, в главном цикле...

Не понимаю как значение сопротивление резистора передать OCR1A. С помощью АЦП как то. Я так думая что контролер должен замерять значение сопротивления и передовать и записывать это значение в переменную с которой можно было бы уже работать.

совершенно верно, через АЦП. Я так управляю скоростью радиоуправляемой машинки. Настраиваю АЦП на 8-ми битный формат, измеряю напряжение и передаю значение ADCH по радио на машинку, а там заношу его значение в OCR


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Ср дек 21, 2016 12:27:11 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Спасибо буду пробовать. А значение скорости машинки передаете через USART?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Ср дек 21, 2016 13:11:01 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 522
Рейтинг сообщения: 0
strengerst писал(а):
Спасибо буду пробовать. А значение скорости машинки передаете через USART?

нет, через NRF24L01+. Через него надежнее :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Чт дек 22, 2016 13:33:24 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Ситуация такая, хочу с помощью АЦП микроконтроллера атmega8 регулировать ШИМ сигнал на транзистор. С ШИМ вроде разобрался
при изменении данных регистра таймера OCR2 мы изменяем скважность сигнала шим и лампочка прикрепленая к транзистору меняет силу свечения. Дальше хочу с помощью переменного транзистора изменять ШИМ сигнал - управлять свечением лампочки. Тут понятно что нужно данные регистра ADCH записывать в OCR2 что бы ШИМ изменялся в зависимости от сопротивления резистора. А как правильно это сделать не знаю. Подскажите в чем я ошибаюсь. Вот схема и код.
Спойлер
Код:
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>


void Timer2Z ()//Функция подключения таймера в режиме шим.
{   TCCR2|=(1<<WGM20);//Выбираем режим с вазовой корекцией WGM20=1; WGM21=0;
   TCCR2|=(1<<COM21)|(1<<COM20); //Выбираем режим формирования сигнала для ШИМ:
//УстановкаOC2при совпадении во время прямого счета.
//СбросOC2при совпадении во время обратного счета.
   TCCR2|=(1<<CS22)|(1<<CS20);//Выбираем частоту синхронизации таймера. clkT2S/1024 (с предделением)
   TIMSK|=(1<<OCIE2)|(1<<TOIE2); //Разрешаем прерывания по совпадению и переполнению таймера
   TIFR|=(1<<OCF2)|(1<<TOV1); //Cбрасываем флаги прерывания если они установлены
   OCR2=0xFF;
   };
   
   
   

ISR(TIMER2_OVF_vect){ // Прерывания таймера по переполнению
   
   
}

ISR(TIMER2_COMP_vect){ // Прерывания таймера по совпадению

   
}

ISR(ADC_vect){//Прерывание от АЦП
OCR2=(ADC & (1<<ADCH));
}
   

int main(void)
{
//Подключаем аналого-цифровой преоброзователь.
ADCSRA|=(1<<ADEN);
//Выбор режима преобразования однократное или непрерывное
ADCSRA|=(1<<ADFR);// непрерывное
// Разрешение прерывание от АЦП по завершению преобразования.
ADCSRA|=(1<<ADIE); // Разрешаем прерывание.ADIF - флаг прерывания.
//Выбираем тактовую частоту АЦП рекомендуется 50-200кГЦ
ADCSRA|=(1<<ADPS2)|(1<<ADPS0); //Что соответствует СК/32 = 4Мгц/32=125кГц
//Выбираем бит опорного напряжение относительно которого будет производится замер
ADMUX|=(1<<REFS0); //Выбираем  AVcc, с внешним конденсатором на AREF.
//Определяем как результат преобразования запишется в регистры
ADMUX|=(1<<ADLAR);// в ADCH записываются старшие  8бит а в младшие 2 бит ADCL
//Выбираем бит аналогового канала на который будет подоватся напряжение для сравнения.
ADMUX|=(1<<MUX0)|(1<<MUX1);// Выбираем ADC3 выход на микроконтролере.


DDRB|=(1<<PB3);

   
   
    while(1)
    {

 //Задаем данные для сравнения они влияют на величину импульса.    
   
   asm("nop");     //TODO:: Please write your application code
    }
}


Вложения:
схема1.png [44.17 KiB]
Скачиваний: 334
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Чт дек 22, 2016 13:54:36 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
по-моему, у вас в коде не хватает запуска АЦП на первое измерение, т.е. ADCSRA |= _BV(ADSC);
ну и, разумеется, глобального разрешения прерываний sei(); не вижу перед главным циклом

P.S. корректность установки прочих битов в регистрах таймера и т.п. не проверял - путаный код...

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Чт дек 22, 2016 14:13:09 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Спасибо сейчас попробую. ADCSRA|=(1<<ADSC); - Так вроде как это для однократного преобразования, а уменя в коде стоит непрерывное преобразование?

Ну вот исправил на однократное ну все равно что то не так:
Все надо идти смогу отписаться только завтра. Если не сложно напишите в чем еще может быть причина
Спойлер
Код:
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>


void Timer2Z ()//Функция подключения таймера в режиме шим.
{   TCCR2|=(1<<WGM20);//Выбираем режим с вазовой корекцией WGM20=1; WGM21=0;
   TCCR2|=(1<<COM21)|(1<<COM20); //Выбираем режим формирования сигнала для ШИМ:
//УстановкаOC2при совпадении во время прямого счета.
//СбросOC2при совпадении во время обратного счета.
   TCCR2|=(1<<CS22)|(1<<CS20);//Выбираем частоту синхронизации таймера. clkT2S/1024 (с предделением)
   TIMSK|=(1<<OCIE2)|(1<<TOIE2); //Разрешаем прерывания по совпадению и переполнению таймера
   TIFR|=(1<<OCF2)|(1<<TOV1); //Cбрасываем флаги прерывания если они установлены
   OCR2=0xFF;
   };
   
   
   

ISR(TIMER2_OVF_vect){ // Прерывания таймера по переполнению
   
   
}

ISR(TIMER2_COMP_vect){ // Прерывания таймера по совпадению

   
}

ISR(ADC_vect){//Прерывание от АЦП
OCR2=(ADC & (1<<ADCH));
asm("sei");
}
   

int main(void)
{
//Подключаем аналого-цифровой преоброзователь.
ADCSRA|=(1<<ADEN);
//Выбор режима преобразования однократное или непрерывное
ADCSRA&=~(1<<ADFR);// однократное
// Разрешение прерывание от АЦП по завершению преобразования.
ADCSRA|=(1<<ADIE); // Запрещаем прерывание.ADIF - флаг прерывания.
//Выбираем тактовую частоту АЦП рекомендуется 50-200кГЦ
ADCSRA|=(1<<ADPS2)|(1<<ADPS0); //Что соответствует СК/32 = 4Мгц/32=125кГц
//Выбираем бит опорного напряжение относительно которого будет производится замер
ADMUX|=(1<<REFS0); //Выбираем  AVcc, с внешним конденсатором на AREF.
//Определяем как результат преобразования запишется в регистры
ADMUX|=(1<<ADLAR);// в ADCH записываются старшие  8бит а в младшие 2 бит ADCL
//Выбираем бит аналогового канала на который будет подоватся напряжение для сравнения.
ADMUX|=(1<<MUX0)|(1<<MUX1);// Выбираем ADC3 выход на микроконтролере.

DDRB|=(1<<PB3); 
ADCSRA|=(1<<ADSC);
asm("sei");


   
   
    while(1)
    {
 //Задаем данные для сравнения они влияют на величину импульса.    
   
   asm("nop");     //TODO:: Please write your application code
    }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 07:01:40 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
во-первых, sei() вы зачем-то вставили в обработчик прерывания АЦП - зачем?
во-вторых, режим АЦП зачем-то изменили на однократный. у вас был правильный режим, но для того, чтобы оно начало измерять, надо ж его запустить первый раз установкой бита ADSC - я ж вам об этом писал "не хватает".
в-третьих, зачем asm("sei") если есть просто sei();?

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 07:29:19 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Спасибо многое не знал. Про запуск особенно . Буду пробовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 07:31:19 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
strengerst писал(а):
многое не знал. Про запуск особенно
читайте даташиты :) как говорил О.Бендер, они еще иногда сеют разумное, доброе, вечное...

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 10:07:24 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Спасибо все получилось. Слишком много информации без практики - каша в голове. При чтении даташита многое упускаю так как там куча инфы и вся она нужна, а практики мало. И еще не всегда все понятно . Спасибо форуму и всем вам что уделяете время на розяснение.

Добавлено after 2 hours 4 minutes 5 seconds:
Куда лучше подключать бит опорного напряжения через AREF или AVcc. В чем вообще разница не пойму.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 10:24:48 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
strengerst писал(а):
В чем вообще разница не пойму
как же, разница есть!
VCC - это питание, вся бяка, что там может быть (например, из-за нестабильного питания или скачков нагрузки) попадет на АЦП и ухудшит качество его работы.
AREF - это вход как бы внешнего источника опорного напряжения, но гораздо лучше использовать встроенный источник опоры, а на AREF поставить конденсатор, в соответствии с рекомендациями даташита. не забудьте и про AVCC (если он есть, конечно), - питание на него следует подавать через LC-фильтр, опять же, в соответствии с даташитом.

встроенный источник опорного напряжения обеспечит гораздо лучшее качество работы АЦП.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 12:18:51 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 522
Рейтинг сообщения: 0
strengerst писал(а):
Спасибо все получилось. Слишком много информации без практики - каша в голове. При чтении даташита многое упускаю так как там куча инфы и вся она нужна, а практики мало. И еще не всегда все понятно . Спасибо форуму и всем вам что уделяете время на розяснение.

Добавлено after 2 hours 4 minutes 5 seconds:
Куда лучше подключать бит опорного напряжения через AREF или AVcc. В чем вообще разница не пойму.

я использую AVcc. Так удобнее, поскольку потенциометр подключен к тому же AVcc. Т.е. при изменении напряжении от 0 до AVcc, ADCH меняется от 0 до 255

Добавлено after 2 minutes 31 second:
ARV писал(а):
встроенный источник опорного напряжения обеспечит гораздо лучшее качество работы АЦП.

strengerst-у не надо измерять напряжение. Ему надо управлять яркостью светодиода, насколько я понял. Точность для него - дело 25-е


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 12:23:05 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ozonn писал(а):
strengerst-у не надо
моё дело посоветовать :))) а пользоваться советом или нет - его дело

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 12:27:40 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт янв 18, 2013 15:11:02
Сообщений: 516
Рейтинг сообщения: 0
Спасибо теперь вроде понял что при использовании Avcc, при правильном подключении через LC фильтр, в отличии от внешнего источника питания подключенного к Aref, меньше помех и более высокая точность измерения.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт дек 23, 2016 12:39:27 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
strengerst писал(а):
в отличии от внешнего источника питания подключенного к Aref, меньше помех и более высокая точность измерения
к сожалению, это не совсем так.
во-первых, к AREF не нужно подключать VCC - смысла нет, питание и изнутри кристалла можно подать в качестве опорного напряжения
во-вторых, и это главное, точность и стабильность встроенного источника опорного напряжения лучше, чем VCC, но может быть гораздо хуже, чем внешнее опорное напряжение! так что для самого лучшего результата следует подключать именно внешний высокостабильный источник опорного напряжения.

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

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


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

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


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

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


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

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


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