Например TDA7294

 Форум РадиоКот • Просмотр темы - Как работать с таймерами ATmega48PA на C/C++ ?
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Чт ноя 15, 2018 08:51:57



Часовой пояс: UTC + 3 часа [ Летнее время ]


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



Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Чт июл 19, 2018 09:44:10 
Друг Кота
Аватар пользователя

Карма: 79
Зарегистрирован: Вт мар 16, 2010 23:02:27
Сообщений: 8427
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Если делать качественный светодиодный индикатор двух прерываний вряд-ли хватит, тем более при том, что помимо индикации еще и задачи ввода/обработки делать необходимо. И ВСЕ на одном кристалле.
Ежли вывести управление светодиодным табло на отдельную мелкосхемку с собственными мозгами - дело несколько упростится (то же касается индикаторов ЖКИ, имеющих свой контроллер).
Однако чаще стараются "мелкий" проект в одну корпусину запихерить, а в таком случае без кучки прерываний "с выпендрежом" не обойтись.
8)


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Чт июл 19, 2018 09:57:41 
Встал на лапы
Аватар пользователя

Карма: 1
Зарегистрирован: Пн ноя 02, 2009 06:27:41
Сообщений: 114
Откуда: С-Пб
Рейтинг сообщения: 0
Сейчас нет. Потом, в процессе отладки или доработки понадобится второе, и приплыли.

а если и потом не понадобится? :)

я это все к тому, что надо все делать с умом. Делал я как-то ампервольтметр для своего ЛБП. Использовал два прерывания, АЦП и таймер, для индикации. Основной цикл пустой. Теперь вопрос: откуда тут могут взяться еще какие-то прерывания? :)

Ну ты троль. Если, когда, зачем... просто делай сразу так ,чтобы потом не было мучительно больно за
потраченное время на быдлокод. 500 мс задержки в прерывании - это вечность.


Вернуться наверх
 Профиль  
 
JLCPCB, 10 прототипов ПП всего за $2 и 2 дня доставка!

Крупнейший производитель печатных плат в Китае, 300,000+ заказчиков, 10,000+ он-лайн заказов в день.

Рассчитайте цену онлайн:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Чт июл 19, 2018 11:22:12 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 351
Рейтинг сообщения: 0
Цитата:
Встречаются два мужика в пустыне. Один тащит телефонную будку, второй рельсу.
Тот что с рельсой спрашивает:
- Нафига тебе телефонная будка?
- Ну а вдруг на меня лев нападет?! Я в будку спрячусь, и он меня не съест! А ты зачем рельсу таскаешь?
- А вдруг львы?!
- И что?
- Ну дак я рельсу брошу и налегке от них убегу!

Кого-то мне чувак с рельсой напоминает. :)


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

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

Второй конкурс по дизайну печатных плат от PCBWay!
Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Чт июл 19, 2018 12:33:53 
Мучитель микросхем

Карма: 5
Зарегистрирован: Чт янв 21, 2016 16:59:10
Сообщений: 404
Рейтинг сообщения: 0
есть правильный подход, который ВСЕГДА дает хороший реззультат, а есть подход, который дает результат ЕСЛИ. знать о таком подходе - плюс, а пользоваться им повседневно на регулярной основе - минус.

я и не пользуюсь. Я просто не люблю усложнять на ровном месте :)


Вернуться наверх
 Профиль  
 
Более 10 000 000 оригинальных новых компонентов

Поставка электронных компонентов под ваш проект

Комплексные решения поставки электронных компонентов

Сэкономьте $30 при первом заказе на сумму боле $200 (только для посетителей нашего форума)
Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Пт июл 20, 2018 12:06:17 
Встал на лапы

Зарегистрирован: Вт сен 09, 2008 19:17:27
Сообщений: 115
Рейтинг сообщения: 0
Теперь непонятные проблемы с таймером1 - ставлю такие настройки (внешний кварц 20мГц):

Код:
TCCR1B = 0;
TCCR1A = 0;   
TCCR1B |= (1<<WGM12); // устанавливаем режим СТС (сброс по совпадению) для первого таймера
//    OCR1AH = 0xFF; //записываем в регистр число для сравнения - старшый байт
//    OCR1AL = 0x7F; //записываем в регистр число для сравнения - младший байт
OCR1A = 4000; //записываем в регистр число для сравнения

TCCR1B |= ( 1 << CS12 ) | ( 1 << CS10 );//устанавливаем предделитель на 1024
TIMSK1 |= (1<<OCIE1A);   // Разрешить прерывание по совпадению OCR1A
//TIMSK1 |= (1<<OCIE1B);   // Разрешить прерывание по совпадению OCR1B
//TIMSK1 |= (1<<TOIE1);    // Разрешить прерывание по переполнению


Канал B осциллографа в Протеусе подключён к ноге PC2, на которой в
ISR (TIMER1_COMPA_vect )меняется высокий уровень на низкий, каждый
полупериод меандра должен быть 205 милисек. = 1/(20000000/(4000*1024))
а он, почему то, то в 3 раза больше, то в 2 !

Почему так происходит?


Вложения:
Безымянный.png [79.87 KiB]
Скачиваний: 45
Вернуться наверх
 Профиль  
 


Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Пт июл 20, 2018 13:55:02 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Зарегистрирован: Пт ноя 11, 2016 06:48:09
Сообщений: 2315
Откуда: Сердце пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
может в прерывание входит не сразу (не разрешены по какой то причине, I, например нет), может в прерывании не сразу скидывает (код то не видно)... а поднимает ногу кто?

Добавлено after 2 minutes 15 seconds:
посмотрел видимую часть сигнала - сбрасывается он вроде регулярно (интервалы между спадающими фронтами равны), а вот поднятие идет както поразному...

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


Вернуться наверх
 Профиль  
 
Впервые на русском языке! «Руководство по проектированию устройств с операционными усилителями»

Руководство Брюса Трампа(Texas Instruments), посвященное практическим аспектам и особенностям проектирования электроники с использованием операционных усилителей (ОУ) – от выбора типа ОУ до тайных приемов опытного разработчика и хитростей отладки.
Подробнее...
Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Пт июл 20, 2018 15:02:27 
Встал на лапы

Зарегистрирован: Вт сен 09, 2008 19:17:27
Сообщений: 115
Рейтинг сообщения: 0
Я выложил весь тестовый проект (Таймеры.zip) для Atmel studio 6.2, там же внутри проэкт для Proteus 8.7

Кстати, если закомментировать блок настроек относящиеся к таймеру0, то таймер1 перестаёт работать вообще
(кажется это происходит после одного срабатывания) !

Почему так происходит?



Вложения:
Таймеры.zip [197.94 KiB]
Скачиваний: 8


Последний раз редактировалось DENIS451 Пт июл 20, 2018 15:42:59, всего редактировалось 1 раз.
Вернуться наверх
 Профиль  
 


Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Пт июл 20, 2018 15:12:52 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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


Вернуться наверх
 Профиль WWW  
 


Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Пт июл 20, 2018 15:24:41 
Встал на лапы

Зарегистрирован: Вт сен 09, 2008 19:17:27
Сообщений: 115
Рейтинг сообщения: 0
О точно, спасибо ARV, глаз замылился и я не вижу, что проверяю PC0 вместо того, что бы проверять PC2,
в обработчике ISR (TIMER1_COMPA_vect )!


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Пт июл 20, 2018 15:34:06 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 94
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 12662
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
DENIS451 писал(а):
глаз замылился и я не вижу, что проверяю PC0 вместо того, что бы проверять PC2
чтобы не попадать в подобную ситуацию, крайне настоятельно рекомендую избавиться от магических чисел при помощи соответствующих макросов

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


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
СообщениеДобавлено: Пт июл 20, 2018 17:18:43 
Мучитель микросхем

Карма: 5
Зарегистрирован: Чт янв 21, 2016 16:59:10
Сообщений: 404
Рейтинг сообщения: 0
Ну ты троль. Если, когда, зачем... просто делай сразу так ,чтобы потом не было мучительно больно за
потраченное время на быдлокод. 500 мс задержки в прерывании - это вечность.

я сразу сделал "не так" и мне не больно, все работет. А у тебя я спросил, откуда в вольтметре возьмется еще одно прерыване. От сырости?

Вы как роботы, сказали вам что в прерывании низзя и все тут. Нет шоп моск включить, хотя бы на мгновение :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2



Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

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


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