Например TDA7294

Форум РадиоКот • Просмотр темы - Atmega88A запись ADCSRA|=(1<<ADSC) решено.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт авг 07, 2025 22:02:45

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


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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Atmega88A запись ADCSRA|=(1<<ADSC) решено.
СообщениеДобавлено: Пн сен 19, 2022 16:50:16 
Прорезались зубы

Карма: -5
Рейтинг сообщений: -18
Зарегистрирован: Ср янв 11, 2012 11:55:51
Сообщений: 216
Рейтинг сообщения: 0
Совершенно дикая ситуация. Проект на Atmega88A. При старте конверсии АЦП (запись бита ADSC в регистр ADCSRA) окончание преобразования приводит к рестарту программы, т.е. выбрасывает на первую сроку main. В реальном железе выглядит как постоянные перезапуски прошивки, в Студии, как написал, уходит на первую строку main(ProgrammCounter = 0) Отловил, что сброс программного счетчика на ноль происходит при выставлении флага ADIF. Т.е. закончилось преобразование АЦП -- и улетел
Понимаю, что лопатить за меня мой код никто не будет. Но хоть направление может кто подскажет?
Вот так выглядит инициализация АЦП. Ничего вроде необычного
Код:
// ADC initialization------------------------------------------------------------------------------------------
   // ADC enabled
   ADCSRA |= (1<<ADPS0) |(1 << ADPS1)|(1<<ADEN)|(1<<ADIE);
   ADMUX= CURRENT_ch | ADC_VREF_TYPE;   


Последний раз редактировалось Land Пн сен 19, 2022 17:14:21, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega88A запись ADCSRA|=(1<<ADSC) = срыв стека?
СообщениеДобавлено: Пн сен 19, 2022 17:01:20 
Потрогал лапой паяльник

Зарегистрирован: Пн окт 26, 2020 08:37:51
Сообщений: 302
Откуда: г.Волгоград
Рейтинг сообщения: 0
Код:
// ADC initialization------------------------------------------------------------------------------------------
   // ADC enabled
   ADCSRA |= (1<<ADPS0) |(1 << ADPS1)|(1<<ADEN)|(1<<ADIE);
   ADMUX= CURRENT_ch | ADC_VREF_TYPE;   

ADIE: ADC Interrupt Enable
Извините за глупый вопрос, а Вы вектор прерывания АЦП и программу его обработки сотворили?

_________________
ФУОЗ на платформе Ардуино: viewtopic.php?p=4366626#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega88A запись ADCSRA|=(1<<ADSC) = срыв стека?
СообщениеДобавлено: Пн сен 19, 2022 17:13:58 
Прорезались зубы

Карма: -5
Рейтинг сообщений: -18
Зарегистрирован: Ср янв 11, 2012 11:55:51
Сообщений: 216
Рейтинг сообщения: 0
С.Н., а вопрос не тупой. Это я идиот. Спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega88A запись ADCSRA|=(1<<ADSC) решено.
СообщениеДобавлено: Пн май 01, 2023 09:59:44 
Родился

Зарегистрирован: Пн май 01, 2023 09:38:57
Сообщений: 11
Рейтинг сообщения: 0
подходящей темы не нашел, напишу здесь. микроконтроллер at90pwm3b. не могу обновить регистры ЦАП
Код:
   if (term>50)
      {
         DACH=200;
      }
      if (term<50)
      {
         DACH=100;
         
      }

Код:
void DAC_init (void)
{
   DACON|=(1<<DAEN)//включаем
       |(1<<DAOE)//вывод на DA2
       |(1<<DALA)//Для того, чтобы легко работать только с 8 битами, есть возможность
                    //отрегулировать входное значение влево. Таким образом, достаточно
                //написать DACH, чтобы обновить значение DAC.стр262.
        |(0<<DAATE);//автоматически обновлять вход ЦАП при записи значения в регистр DACH.
   Enable_vcc_vref(); // опорное напряжение питания
}

Код:
void ADC_ini(void)
{
   Enable_adc();//включаем ацп
   Set_prescaler(128); //делитель 128
   Enable_vcc_vref(); // опорное напряжение питания
   Right_adjust_adc_result();// правое выравнивание результата АЦП для 10 бит
   Enable_adc_it();//прерывания по ацп
   Start_conv();//старт измерения
}

опорное напряжение инициализируется в ините на ацп


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 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