Например TDA7294

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



Текущее время: Вт апр 20, 2021 10:57:44

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


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



Начать новую тему Ответить на тему  [ Сообщений: 3008 ]     ... , , , 141, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 09:52:30 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Реакции никакой.
Проверил - именно на команды, связанные с таймером
:shock:

Добавлено after 33 minutes 11 seconds:
В ходе последних мучений выяснил, что проблема именно в передаче значения как входного параметра - даже с volatile не хочет считывать так, как мне это нужно


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 09:55:10 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 662
Откуда: Пермь
Рейтинг сообщения: 0
Замени вызов функции прямым присвоением регистра.

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


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

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

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

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

Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 09:58:37 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1844
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15818
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
An-SU писал(а):
проблема именно в передаче значения как входного параметра - даже с volatile не хочет считывать так, как мне это нужно
чудеса, да и только!

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


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 10:14:27 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 662
Откуда: Пермь
Рейтинг сообщения: 0
чудеса, да и только!

Вот в этом и есть косяк AVR - отладчик стоит неразумных денег.
Я после MSP430 и теперь на STM32 смотрю на эту проблему с недоумением.

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


Вернуться наверх
 
Вебинар «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок» (27.04.2021)

Компания «Компэл» и Analog Devices приглашают всех желающих 27/04/2021 принять участие в вебинаре, посвященном решениям Analog Devices для гальванической изоляции. В программе вебинара: технологии гальванической изоляции iCoupler, цифровые изоляторы, технология isoPower, гальванически изолированные интерфейсы (RS-485, CAN, USB, I2C, LVDS) и другое. Вебинар будет интересен разработчикам промышленной автоматики и медицинской техники.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 10:21:47 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1844
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15818
Откуда: Новочеркасск
Рейтинг сообщения: 3
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Я после MSP430 и теперь на STM32 смотрю на эту проблему с недоумением.
вот только давайте без вот этого вот!
для AVR в том их понимании, как у большинства любителей, вообще нет необходимости в отладчиках! если не симулятор студии, то уж протеус точно покрывает все потребности разработчика. для особо гениальных, конечно, потребуется нечто большее - тогда пусть и платят. разбаловались отладчиками, даже наподумать сил не оставили...

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


Вернуться наверх
 
Винтовые клеммники Degson - расширение складской программы!

Широкий ассортимент винтовых клеммников Degson включает в себя различные вариации с шагом выводов от 2,54 до 15 мм, с числом ярусов от одного до трёх и углами подключения проводника 45°, 90°, 180°. К тому же Degson предлагает довольно большой выбор клеммных винтовых колодок кастомизированных цветов.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 10:32:40 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 662
Откуда: Пермь
Рейтинг сообщения: 0
Вот сейчас как раз тот самый случай, когда отладка бы всё прояснила.

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


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


Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 10:38:07 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1844
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15818
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
сейчас как раз тот случай, чтобы повыкидывать из кода лишние манипуляции с SREG, бесконечные cli()-sei(), повсеместные volatile, разобраться с алгоритмом управления таймером и сделать так, что бы заработало с пол-пинка. а отладчик тут окажет медвежью услугу.

Добавлено after 51 second:
хотя при желании можно воспользоваться симулятором студии или (для ШИМ-а предпочтительнее) протеусом.

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


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


Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 10:53:40 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
prinv, а не подскажете, каким образом можно записать, чтобы регистр считывал величины переменных?

ARV, команды с SREG и cli()-sei() я брал из технического описания для микросхемы (отечественный аналог 128), где приводился следующий отрывок кода как правильный для изменения регистров таймера. volatile накидывал до кучи, пытаясь оживить программу, да


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

Карма: 90
Рейтинг сообщений: 1844
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15818
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
An-SU писал(а):
отечественный аналог 128
чевой-чевой?! :shock: :shock: :shock:

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 11:13:58 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 662
Откуда: Пермь
Рейтинг сообщения: 1
prinv, а не подскажете, каким образом можно записать, чтобы регистр считывал величины переменных?


Имя_регистра = имя_переменной

Добавлено after 1 minute 5 seconds:
чевой-чевой?! :shock: :shock: :shock:

Вот тут тоже кофе поперхнулся. 1887ВЕ7Т, 1887ВЕ8Т используете?
An-Su, может покажете нам - что вы там делаете? :))

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пт окт 05, 2018 12:15:06 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Не, просто в связи с более подробным описанием таймеров на русском читал методичку для 1887ВЕ7Т.
:)

"Имя_регистра = имя_переменной" - так в моем коде оно так и объявлялось...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Сб окт 06, 2018 04:41:34 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 662
Откуда: Пермь
Рейтинг сообщения: 1
Да, просто вместо вызова функции присвойте значение регистру.

Добавлено after 8 hours 50 minutes 48 seconds:
Сделал на ATMega16A.
Не работало, пока я не сообразил, что в прерывании нужно обнулить счётчик.
Код:
#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

uint16_t Sch = 10000;

ISR(TIMER1_COMPA_vect) /* Timer/Counter1 Compare Match A */
{
   PORTB ^= _BV(PB3);
   /* Не забываем обнулить счётчик!!! */
   TCNT1 = 0;
};

void ti_ini(uint16_t temp)
{
   // Инициализация Timer1 16bit
   TCCR1B = 0;         // Остановили таймер
   TCCR1A = 0;         // Обычный режим
   TCNT1 = 0;         // Начальное значение счётчика таймера
   OCR1A = temp;      // Значение сравнения
   TIMSK = _BV(OCIE1A);// Разрешаем прерывание при совпадении с А
   TCCR1B = _BV(CS11) | _BV(CS10); // Запуск таймера, предделитель CLK/64
}

int main(void)
{
   /* Светодиоды */
   DDRB = _BV(PB3);
   DDRD = _BV(PD7);

   /* Подтяжка вверх для кнопок */
   PORTC = _BV(PC1) | _BV(PC0);
   
   ti_ini(Sch);

   sei();
    while (1)
   {

      if (!(PINC & _BV(PC0))) // нажата кнопка PC0
      {
         PORTD ^= _BV(PD7);
         Sch /= 2;
         ti_ini(Sch);
         _delay_ms(100);
         
      }
      if (!(PINC & _BV(PC1))) // нажата кнопка PC1
      {
         PORTD ^= _BV(PD7);
         Sch *= 2;
         ti_ini(Sch);
         _delay_ms(100);
      }

    }
}

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Сб окт 06, 2018 07:08:52 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1844
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15818
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
prinv писал(а):
Не работало, пока я не сообразил, что в прерывании нужно обнулить счётчик
так вроде ж шла речь про режим СТС, или я опять все перепутал?

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Сб окт 06, 2018 07:49:56 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 662
Откуда: Пермь
Рейтинг сообщения: 1
И в режиме CTC тоже всё работает
Код:
ISR(TIMER1_COMPA_vect) /* Timer/Counter1 Compare Match A */
{
   PORTB ^= _BV(PB3);
};

void ti_ini(uint16_t temp)
{
   // Инициализация Timer1 16bit
   TCCR1B = 0;         // Остановили таймер
   TCCR1A = 0;         
   TCNT1 = 0;         // Начальное значение счётчика таймера
   OCR1A = temp;      // Значение сравнения
   TIMSK = _BV(OCIE1A);// Разрешаем прерывание при совпадении с А
   TCCR1B = _BV(WGM12) | _BV(CS11) | _BV(CS10); // Запуск таймера в режиме CTC, предделитель CLK/64
}


Добавлено after 11 minutes 32 seconds:
Работает и в случае простого присваивания OCR1A = Sch;
Код:
      if (!(PINC & _BV(PC0))) // нажата кнопка PC0
      {
         PORTD ^= _BV(PD7);
         Sch /= 2;
         OCR1A = Sch;
//         ti_ini(Sch);
         _delay_ms(100);
         
      }
      if (!(PINC & _BV(PC1))) // нажата кнопка PC1
      {
         PORTD ^= _BV(PD7);
         Sch *= 2;
         OCR1A = Sch;
//          ti_ini(Sch);
         _delay_ms(100);
      }

В общем, проблему так и не получилось повторить

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 09:07:29 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
prinv, уважаемый, спасибо Вам огромное!
На самом деле код заработал у меня еще в пятницу, когда я поставил переназначение OCR сразу со входного параметра функции, а не путано, как у меня было (может, еще что изменил, но оно стало работать)

На данный момент имеется лишь проблема с тем, что изменение частоты при нажатии на кнопку происходит кратковременно, только во время нажатия, словно я использую while
Не подскажете..?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 09:08:53 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 662
Откуда: Пермь
Рейтинг сообщения: 0
Покажите текущий код

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 09:23:46 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Код:
#define F_CPU 8000000UL   //obyavleniye chastoty CPU mk
#include <avr/io.h>   //podklucheniye biblioteki mk
#include <avr/interrupt.h>   //podklucheniye biblioteki zaderjek
#include <util/delay.h>   //podklucheniye zaderjek
#include <stdio.h>

unsigned int Sch;

static void ti_in(void)
{
   TCCR1A|=0;   //регистр управления таймером/счетчиком
   TCNT1|=0;   //Регистр таймера/счетчика
   OCR1A=Sch;   //значение сравнения, до 16 бит
   TIMSK|=(1<<OCIE1A); 
   TCCR1B|=(1<<CS12)|(1<<WGM12);   //установка делителя, режима работы таймера
}

ISR(TIMER1_COMPA_vect)   //функция, выполняемая автоматически, при совпадении числел - счетчика и установленного значения
{
   PORTC=~PORTC;
}

static void TI_Write(unsigned int Sch)
{
 unsigned int sreg = SREG;
 cli();
 OCR1A=Sch;
SREG=sreg;
}

int main(void)
{
   cli();
   DDRC=0xFF;
   Sch=100; //в реале период / 2
   ti_in();
   sei();

    while (1)
    {
      if (!(PINE &= (1<<PE1)))
       TI_Write(300);

      if (!(PINE &= (1<<PE0)))
       TI_Write(1000);
    }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 09:26:28 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1844
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15818
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
An-SU писал(а):
static void TI_Write(unsigned int Sch)
{
 unsigned int sreg = SREG;
 cli();
 OCR1A=Sch;
SREG=sreg;
}

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 09:33:44 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
ARV, ну удаление особой роли в данном случае не сыграет, повторюсь, я просто ориентировался на:
https://docplayer.ru/59393693-Mikroshem ... dl-to.html 124 страница сверху


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

Карма: 90
Рейтинг сообщений: 1844
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15818
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
у вас творятся чудеса, поэтому все лишнее - безжалостно отсекаем.
у вас кнопки на порту Е - я так понимаю, на общий? где настройка порта Е?

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


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

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


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

Сейчас этот форум просматривают: Jack_A и гости: 10


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

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


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