Например TDA7294

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



Текущее время: Ср дек 02, 2020 05:58:55

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


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



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

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
При Вашем _delay_ms(1000) зависает словно нет прерываний
При _delay_ms(10000); работает на первой частоте, не изменяясь


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

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

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


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

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

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

Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 11:39:34 
Открыл глаза

Зарегистрирован: Пн окт 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

uint16_t Sch=100;

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;
   PORTE = (1<<PE0) | (1<<PE1);
   Sch=100; //в реале период / 2
   ti_in();
   sei();

    while (1)
    {
      if (!(PINE & (1<<PE1)))
    {
       TI_Write(300);
       _delay_ms(100);
     }
    }
}


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 12:12:00 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15514
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
вот так сделайте - что будет?
Код:
int main(void)
{
   DDRC=0xFF;
   PORTE = (1<<PE0) | (1<<PE1);
   ti_in();
   sei();

    while (1)
    {
   OCR1A = 300;
   _delau_ms(1000);
   OCR1A = 1000;
   _delay_ms(1000);
    }
}

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


Вернуться наверх
 
Вебинар «Практическое использование TrustZone в STM32L5»(10.12.2020)

Приглашаем на вебинар, посвященный экосистеме безопасности и возможностях, которые появились у разработчиков благодаря новой технологии TrustZone в микроконтроллерах STM32L5. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 12:36:02 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
У меня светодиоды постоянно мигают на частоте OCR1A = 1000


Вернуться наверх
 
SiC MOSFET = высокий КПД источника питания

650 В карбид-кремниевые (SiC) MOSFET компании Wolfspeed имеют самый низкий в отрасли показатель сопротивления открытого канала и наименьшую его зависимость от температуры, что дает им преимущество не только перед обычными кремниевыми (Si) 650 В MOSFET, но и перед нитрид-галлиевыми транзисторами.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 12:43:16 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

[оффтоп]
был в моей практике случай, когда вот так же помогал одному товарищу отладить его код. что ни посоветую - у него все не получается. почти неделю по вечерам бились, уже и TeamViewer поставили, я сам у него в IDE код собирал - ноль эффекта! пока не выдержал и потребовал поставить Скайп с вебкой, чтобы полюбоваться на его макетную плату... оказалось, у него питание не было подано вообще... не в ту клемму проводок вставил. и работало через пень колоду за счет паразитной запитки через пины ISP-программатора...
[/оффтоп]

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


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


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

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

Прошивка-то вообще обновляется?

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


Последний раз редактировалось prinv Пн окт 08, 2018 12:52:23, всего редактировалось 1 раз.

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


Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Пн окт 08, 2018 12:51:27 
Открыл глаза

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Что же такое страшное? :shock:

Хм... Ну я могу прислать фотографию, если потребуется :)))

А у вас всё работает при сборке моего кода?


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

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

Дома могу проверить на ATMega16A на Pinboard

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


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

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Изображение


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

Карма: 90
Рейтинг сообщений: 1785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15514
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
У меня светодиоды постоянно мигают на частоте OCR1A = 1000
объясняю, что меня удивляет.

вы пишите, мигает как при OCR1A=1000.
но, во-первых, если оно зависает до начала главного цикла, то OCR1A=100 согласно вашего кода инициализации таймера!
во-вторых, если оно зависает на задержке в главном цикле, то 1 секунду оно обязано было отработать с OCR1A=300 - согласно моему коду!

а вы говорите, что у вас каким-то чудом не 100, не 300, а сразу 1000 - и ничего не меняется! а ведь цикл бесконечный...

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


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

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
ARV, прошу прощения, я ошибся - мигает как на 300, не меняясь


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

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

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


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

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Стоит optimize for size

Ну так прерывания в любом случае происходят, ибо светодиоды мерцают, разве не так?


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

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

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


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

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Вообще Вы правы, поставил себе в цикл просто мигания после 1 секунды как инвертирование порта делай мс, на практике инвертирует лишь через секунд 16...


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

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

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


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

Карма: 7
Рейтинг сообщений: 47
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 656
Откуда: Пермь
Рейтинг сообщения: 0
Вот такой код работает вообще без вопросов
Код:
#define F_CPU 8000000UL

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

uint16_t Sch = 1000;

ISR(TIMER1_COMPA_vect) /* Timer/Counter1 Compare Match A */
{
   PORTB = ~PORTB;
};

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

static void TI_Write(uint16_t Sch)
{
   OCR1A=Sch;
}

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 = 5000;
         TI_Write(Sch);
         _delay_ms(100);
         
      }
      if (!(PINC & _BV(PC1))) // нажата кнопка PC1
      {
         PORTD ^= _BV(PD7); // Подтверждение нажатия кнопки
         Sch = 2000;
         TI_Write(Sch);
         _delay_ms(100);
      }

    }
}


Вложения:
Комментарий к файлу: Pinboard II
IMG_20181008_203145_1.png [190.85 KiB]
Скачиваний: 309

_________________
Никакая контра не уйдёт от нас
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio в вопросах и ответах
СообщениеДобавлено: Вт окт 09, 2018 06:09:50 
Вымогатель припоя
Аватар пользователя

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

А что у вас с фьюзом CLKDIV8?
16 сек это 2 сек * 8, а 2 секунды это 1 сек вкл + 1 сек выкл.

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


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

Зарегистрирован: Пн окт 01, 2018 11:33:59
Сообщений: 72
Рейтинг сообщения: 0
Итак, последние сводки с фронта - у меня не был установлен фьюз на частоту 8 МГц, теперь задержки адекватны, но!
Всё остальное работает по-прежнему, не считая именно самой изменившейся частоты

prinv, почти такой же код у меня и сейчас. Но видимо, дело обстоит в изменении еще каких-либо настроек
А CLKDIV8 разве есть в Атмеге128?


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

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


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

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


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

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


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