Например TDA7294

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





Текущее время: Вс май 18, 2025 09:19:02

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


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



Начать новую тему Ответить на тему  [ Сообщений: 20 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 11:12:22 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
Добрый день.
Вопрос конечно чайниковский до ужаса но вот туплю по страшному.
В общем собирал я некоторые устройства на пиках но там никогда не использовались не часы не таймеры больше 1 минуты.
А тут понадобился таймер на 3 часа.
И тут вот и началось.
В данный момент вот так и конечно же не точно считает.

Код:
if (TMR0IF)
   {
        sys1++;
        TMR0=63500;
        TMR0IF = 0;
   }


В регистрах включен 16 битный таймер.
Прескалер выключен вообще то есть 1:1.

Я в инете нашел несколько примеров но по ним не работает.
Частота тактовая 8Мгц проца.

Может кто рассчитает для моего??
Или формулу киньте пожалуйста. Я задолбался, вообще туго даётся программирование и математика, но оочень интересно это. :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 11:31:37 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4558
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
не точно считает
Что значит "неточно" ? И что для Вас будет "точно" ?
Точность, в первую очередь, будет зависеть от точности исходной частоты. В данном случае - от частоты тактирования таймера.

Цитата:
Или формулу киньте пожалуйста.
Формулу чего ? Крабсбургера ? :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 11:46:26 
Открыл глаза

Зарегистрирован: Пт янв 11, 2013 10:54:43
Сообщений: 60
Рейтинг сообщения: 0
AVT-28 писал(а):
Я в инете нашел несколько примеров но по ним не работает.
.. но оочень интересно это. :)
А чему там не работать? В нете примеров рабочих до кучи с интервалами хоть годы.
Как вариант: делаете тик на 10 мс, далее 1 с, 1мин, 1 час,
Код:
тик на 10мс.
if (TMR0IF)
   {
        tmr_ms++;
        if (tmr_ms  == 100) { tmr_ms = 0;   tmr_Sec++;} //1 sec
        if (tmr_Sec == 60)   { tmr_Sec = 0;  tmr_Min++;} //1 min
...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 11:55:13 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7012
Откуда: Ижевск
Рейтинг сообщения: 0
Код:
       sys1++; // этой переменной выдерживаем нужный интервал (выбрать нужную разрядность)
        TMR0=63500; // этим регистром можно ловить точность

_________________
Docendo discimus


Вернуться наверх
 
Открыт интернет-магазин MEAN WELL.Market – весь ассортимент MEAN WELL, выгодные цены

Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России. На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 11:59:11 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
Вот точность я ловил но замучаешься, как то поидее рассчитать надо.
Хотелось бы в sys1 получать 1 миллисекунду.
Тогда все мои счётчики что я намутил заработают точно. :)
Это программа расчёта расхода энергии, ваттметр в общем.


Вернуться наверх
 
LED-драйверы MOSO - надежные решения для индустриальных приложений

Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO подробнее>>
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 12:01:44 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
Vano79 писал(а):
AVT-28 писал(а):
Я в инете нашел несколько примеров но по ним не работает.
.. но оочень интересно это. :)
А чему там не работать? В нете примеров рабочих до кучи с интервалами хоть годы.
Как вариант: делаете тик на 10 мс, далее 1 с, 1мин, 1 час,
Код:
тик на 10мс.
if (TMR0IF)
   {
        tmr_ms++;
        if (tmr_ms  == 100) { tmr_ms = 0;   tmr_Sec++;} //1 sec
        if (tmr_Sec == 60)   { tmr_Sec = 0;  tmr_Min++;} //1 min
...


Это всё понятно, не понятно как TMR0 рассчитать для 8 мегагерц.
Я так понимаю что 1 такт проца занимает судя по калькулятору для 8 мгц 0.000000125 сек. без делителя???
Или делитель есть какой то уже по умолчанию?? 1:2 например? может в этом ошибка?


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 12:16:32 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4558
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
AVT-28,Вы привыкли только сами задавать вопросы, и не отвечать на другие ?

Цитата:
не понятно как TMR0 рассчитать
выходная частота = входная частота / предделитель / кол-во отсчётов таймера. Это же очевидно :)
Вот и выражайте из этой формулы любой элемент.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 12:18:39 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
Аlex писал(а):
AVT-28,Вы привыкли только сами задавать вопросы, и не отвечать на другие ?

Да я бы с радостью отвечал если бы знал что. :)
На одних формах я много чего знаю на других ничего не знаю. :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 12:23:54 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
Мне что бы понять что то самому нужно вникнуть полностью в каждую мелочь, иногда просто не могу понять какую то мелочь и не могу понять вообще ничего.
Если разбирать камень по полочкам то TMR0 прибавляет каждый такт, это верно или нет??
И если включить делитель к примеру 1:2 то TMR0 тикает каждые 2 такта, так??


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 12:32:10 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4558
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Для периодично-повторяющихся отсчётов времени лучше взять таймер с аппаратным сбросом при соответствии с установленным значением. Для этого никаких лишних "телодвижений" (типа переустановка таймера на n-ное кол-во тактов) не нужно выполнять. Такие таймеры в PIC'ах существуют, курите даташит. Благо документация у Микрочипа путёвая. По таймерам достаточно рисунков с архитектурой таймера, чтобы понять что он из себя представляет.

Цитата:
Если разбирать камень по полочкам то TMR0 прибавляет каждый такт, это верно или нет??
И если включить делитель к примеру 1:2 то TMR0 тикает каждые 2 такта, так??
Да, так.
Я же Вам привёл формулу :
Цитата:
выходная частота = входная частота / предделитель / кол-во отсчётов таймера
Что в ней непонятного ? :)
Мало того, картинка из даташита :
Изображение
Неужели по ней Вам ничего не понятно ? :)


Вложения:
TMR0.JPG [151.63 KiB]
Скачиваний: 811
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 12:50:13 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
Ура спасибо.
Теперь я могу всё рассчитать, понято. :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 12:55:09 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4558
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Много ли человеку нужно для счастья ? Всего-лишь привести кусок из даташита :))
Не забывайте, что даташит - это документация. И сделана она специально для того, чтобы не ходить по форумам и не выпрашивать объяснений :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 13:10:55 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7012
Откуда: Ижевск
Рейтинг сообщения: 0
AVT-28 писал(а):
Теперь я могу всё рассчитать

Можно посмотреть на ваши рассчёты? В плане, не обманывается ли Аlex в пользе выкладок даташита?

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 15:02:25 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
у меня вообще пока что при 16 bit таймере, 8 бит не выходит точно считать, или отстаёт или бежит сильно.
В общем TMR0=63649
дёргаю ногу через таймер, получилось ровно 500.018 герц.
Я думаю если и будет вперёд время бежать то за 3 часа далеко не убежит.

До формулы я так и не добрался, я решил сперва просто изучить вообще таймер и как он работает, просто основы.
Посмотрел даташит, поклацал калькулятором.
Потом решил просто TMR0=0 посмотреть осциллографом и TMR=255 посмотреть в 8 бит режиме таймера. так вот TMR=255 это 3.09кгц а если 0 то блин потерял цифру, заново измерять не могу, собрал в корпус уже всё.
Вообще выяснилось что у меня уже стоит предделитель /4 то есть тактовая частота 8мгц выставлена а на самом деле буд то 2мгц, а кстати может я чего и там накосячил, может на самом деле на 2 мгц и работает.
Но OSCCON = 0b01111110; PLLx4 выключен точно.
PSA = 1; то есть делители выключены.
Получается что всеж таки по умолчанию делитель на 4 есть.

В общем переключился я на 16 бит а тут ну совсем же другая задница, в общем выставил от фонаря 63000 и прям почти точно попал в точку, ну тут уже спортивный интерес,
63500 выставил и прям почти совсем попал. :) В общем доподбирался до 63649.
затем по такой формуле посчитал уже после подбора, 65535 - (частота/1000/(делитель 4)) но вот нихрена не точно получается. Все равно подобралось точнее.
по формуле 63535 получается 499 с чем то кгц, у меня встроенный генератор и может поэтому гуляет тактовая.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 15:48:39 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
Ну вот 1 час прошел , секунда в секунду, что надо, даже если бы на 1 сек уходило это ерунда.
Задача выпонена. Конечно опыта мало хотя я 5 лет назад уже начал заниматься МК, но практики очень мало.
Вообще нужен по любому кварц 32768, просто я заранее не подумал об этом, а щас плату переделывать уже никак не охото..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Пт мар 27, 2015 18:44:27 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4558
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
Получается что всеж таки по умолчанию делитель на 4 есть.
Получается, что Вы плохо изучаете даташит. А особенно невнимательно посмотрели на картинку, которую я выложил.
Обратите внимание на источник тактов.

Цитата:
PSA = 1; то есть делители выключены.
PSA=1 - предделитель ВКЛЮЧЕН ! Внимательнее смотрите !


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Сб мар 28, 2015 01:24:46 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
PSA: Timer0 Prescaler Assignment bit
1 = TImer0 prescaler is not assigned. Timer0 clock input bypasses prescaler.
0 = Timer0 prescaler is assigned. Timer0 clock input comes from prescaler output.

Да я увидел но не сразу что /4 изначально.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Сб мар 28, 2015 08:06:01 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4558
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
AVT-28 писал(а):
1 = TImer0 prescaler is not assigned. Timer0 clock input bypasses prescaler.
0 = Timer0 prescaler is assigned. Timer0 clock input comes from prescaler output.
Ха, вот это ляп в даташите. А по картинке - наоборот :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Сб мар 28, 2015 23:31:16 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 12:35:11
Сообщений: 378
Рейтинг сообщения: 0
В том то и дело что не ляп. На самом деле так.
Включаешь делитель и всё жууутко тормозит.
Вот в схеме ляп.
Прежде чем отписаться специально 0 поставил и всё стало тормозить жутко, то есть делитель включился.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер в 18F2520 настроить.
СообщениеДобавлено: Вс мар 29, 2015 05:50:00 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7012
Откуда: Ижевск
Рейтинг сообщения: 0
А что происходит на самом деле - вообще неизвестно никому.

_________________
Docendo discimus


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

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


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

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