Например TDA7294

Форум РадиоКот • Просмотр темы - Таймер 2 в Atmega8
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 25, 2024 16:27:55

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


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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Таймер 2 в Atmega8
СообщениеДобавлено: Чт авг 10, 2017 17:36:54 
Родился

Зарегистрирован: Чт авг 10, 2017 17:20:09
Сообщений: 5
Рейтинг сообщения: 0
Здравствуйте! Скачал проект термометра (в скрепке). Хочу вставить таймер 2, формирующий прерывания:

// Timer 2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
PORTC.0=1;
}

// Timer/Counter 2 initialization
// Clock source: TOSC1 pin
// Clock value: PCK2
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x08;
TCCR2=0x01;
TCNT2=0x00;
OCR2=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x40;

Не работает.
Хотелось бы заменить индикатор на семи-сегментный светодиодный, который бы работал от внешнего кварца.
Может кто подскажет причину неудачи?


Вложения:
1x2.zip [153.34 KiB]
Скачиваний: 153
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Чт авг 10, 2017 20:21:18 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1385
Рейтинг сообщения: 0
1 - Вы включили таймер на режим работы от внешнего кварца. Так и задумано? Если вы планируете тактирование таймера от МК - это одно. Если от кварца, который подключается к TIMER2 - это другое.
2- Отучайте себя писать магические числа.
Цитата:
ASSR=0x08;
TCCR2=0x01;


Код:
   ASSR = (1<<AS2);
   TCCR2 = (1<<CS20);

   TIMSK |= (1<<TOIE2);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 07:02:41 
Родился

Зарегистрирован: Чт авг 10, 2017 17:20:09
Сообщений: 5
Рейтинг сообщения: 0
ASSR = (1<<AS2);
TCCR2 = (1<<CS20);

TIMSK |= (1<<TOIE2);

После замены получил:
Error........main_.c(83): undefined symbol'AS2'
Error........main_.c(83): undefined symbol'CS20'
Error........main_.c(83): undefined symbol'TOIE2'

Хотел использовать внешний кварц


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 07:21:13 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6620
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
CVAVR их не знает, или в дефайны вынести надо, типа #define AS2 3 // AS2 он заменит на 3 => (1<<3) = 0x08 но от магических чисел уйдём :)
или пока 0х08

Добавлено after 5 minutes 39 seconds:
номера битов придётся в даташите брать

Добавлено after 1 minute 39 seconds:
или #include <mega8.h> в нём должно быть прописано, но она у тебя и так есть

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 07:34:02 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
С асинхронным режимом таймера не приходилось работать. Советую почитать в ДШ про него, там много чего написано.

Вот как его надо запускать.
Цитата:
1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2.
2. Select clock source by setting AS2 as appropriate.
3. Write new values to TCNT2, OCR2, and TCCR2.
4. To switch to asynchronous operation: Wait for TCN2UB, OCR2UB, and TCR2UB.
5. Clear the Timer/Counter2 Interrupt Flags.
6. Enable interrupts, if needed.


Обратите внимание, что тактовая частота ядра должна быть в 4 или более раз выше, чем частота таймера.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 07:42:53 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6620
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
попробу ещё #include <mega8_bits.h> в нём они есть.

Добавлено after 47 seconds:
дописать сразу после #include <mega8.h>

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 07:57:55 
Родился

Зарегистрирован: Чт авг 10, 2017 17:20:09
Сообщений: 5
Рейтинг сообщения: 0
Спасибо за подсказки.
Я вставил в тело проекта настройки таймера 2 из другого рабочего проекта простым копированием. Там таймер превосходно работает от внешнего кварца. Пробовал копировать другие таймеры. Проект их не видит. Что нужно сделать, чтобы проект их увидел?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 08:12:23 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6620
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
а что значит "не видит"?

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 08:15:20 
Родился

Зарегистрирован: Чт авг 10, 2017 17:20:09
Сообщений: 5
Рейтинг сообщения: 0
// Timer 2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
PORTC.0=1; ---------- не устанавливается бит
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 08:33:29 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Глобальное разрешение прерываний не забыли включить?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 09:12:21 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6620
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
а таймер точно идёт (кварц исправен, фьюзы правильно стоят?)

Добавлено after 7 minutes 29 seconds:
глобальное, а локальное для переполнения Т2

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 10:44:33 
Родился

Зарегистрирован: Чт авг 10, 2017 17:20:09
Сообщений: 5
Рейтинг сообщения: 0
Спасибо большое за помощь.
Вставил:
// Global enable interrupts
#asm("sei")


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер 2 в Atmega8
СообщениеДобавлено: Пт авг 11, 2017 11:32:17 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6620
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
а зачем динамическую индикацию тактировать отдельно, она вроде к частоте не очень критична?

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


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

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


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

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


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

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


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