Например TDA7294

Форум РадиоКот • Просмотр темы - Часы на PIC16F628 + DS3231
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср янв 07, 2026 02:02:48

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


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



Начать новую тему Ответить на тему  [ Сообщений: 109 ]    , , 3, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 12:49:37 
Модератор
Аватар пользователя

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

Добавлено after 7 minutes 23 seconds:
Кстати, 4096 Гц - это не 1.7 мс, а ~244 мкс. :music:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 12:58:32 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
korob
Ты наверное считаешь по CLK и забываешь про другие операции МК. Загрузить, переложить, сдвинуть и т.д.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:04:59 
Друг Кота
Аватар пользователя

Карма: 142
Рейтинг сообщений: 5961
Зарегистрирован: Чт авг 09, 2012 01:09:39
Сообщений: 6642
Откуда: Ливны
Рейтинг сообщения: 0
Аlex писал(а):
Кстати, 4096 Гц - это не 1.7 мс, а ~244 мкс.
:)))
Так вроде же разобрались... 4096Гц. это тактовая для индикации, период которой составляет 32 такта. А 1,7мс. это время индикации одного разряда, при скважности 32/7 это 7 тактов. А теперь 244мкс. (период одного такта тактовой частоты) умножаем на 7 (7 тактов длится индикация одного разряда), вот и получается ~1,7мс. :wink:
otest писал(а):
Ты наверное считаешь по CLK и забываешь про другие операции МК
Ну да. :oops: Во время индикации одного разряда опросил DS3231, во время индикации друго разряда посчитал/перевёл/переложил, во время индикации следующего разряда... и .т.д.
Разве не так? :dont_know:

_________________
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:10:06 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
korob писал(а):
А 1,7мс. это время индикации одного разряда, при скважности 32/7 это 7 тактов.
Таким макаром можно сказать, что у нас есть в запасе 7.8 мс., ибо частота индикации всего = 128 Гц :)
4 КГц - несущая частота индикации. а это значит, что контроллер будет прерываться с этой частотой и делать некие вычисления. По всей видимости, между этими вычислениями (между прерываниями) человек и хотел уложиться в опрос DS'ки. Другого объяснения я не вижу :dont_know:


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:19:05 
Друг Кота
Аватар пользователя

Карма: 142
Рейтинг сообщений: 5961
Зарегистрирован: Чт авг 09, 2012 01:09:39
Сообщений: 6642
Откуда: Ливны
Рейтинг сообщения: 0
Аlex писал(а):
4 КГц - несущая частота индикации. а это значит, что контроллер будет прерываться с этой частотой
Даже так? Прерываться каждый такт? :roll:
Я думал иначе - прерываться будет только при изменении уровней выходных сигналов. Т.е. у МК будут "рабочие окна" в 1,7мс. А иначе зачем прерываться семь раз за время индикации одного разряда если ничего по сути не нужно делать в этих прерываниях? :dont_know:

_________________
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:24:59 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Чтение состоит из двух процедур — установить указатель на нужный
регистр и прочитать его. Чтобы установить указатель на нужный регистр, нужно передать
условие старта, потом передать адрес микросхемы с битом записи и байт с адресом
регистра. Далее либо условие остановки и следом условие старта, либо просто рестарт.
Теперь вторая процедура — непосредственно чтение из регистров. Старт передан, далее
нужно отправить адрес микросхемы с битом чтения и далее считывать регистры в
необходимом количестве, по окончании передать условие остановки. Если информация из
регистра была прочитана, то указатель автоматически переходит на следующий за ним
регистр без лишних действий со стороны микроконтроллера (мастер устройства.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:35:18 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А иначе зачем прерываться семь раз за время индикации одного разряда если ничего по сути не нужно делать в этих прерываниях?
Несущая так поднялась из-за требований к скважности.
Ты видишь только 7/32-ых, но не видишь другую 1/32-ую. Которая и является минимальным квантом для несущей.

У меня начальник такой-же. "Да чего тут сложного ? Всего-то, нужно чтобы на дисплейчике нарисовалось то-то и менялось в зависимости от того-то" .... :)))
Будучи обычным пользователем, не имея опыта программирования, и не зная структуры уже имеющейся программы, нельзя оценивать программу только по наружним берюшкам :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:40:00 
Друг Кота
Аватар пользователя

Карма: 142
Рейтинг сообщений: 5961
Зарегистрирован: Чт авг 09, 2012 01:09:39
Сообщений: 6642
Откуда: Ливны
Рейтинг сообщения: 0
otest, с описанным выше всё как раз понятно (время опроса прикидывал с учётом всего выше сказанного). :)
Не понятно зачем затягивать с опросом? Это же не DS18B20 где после запроса выполняется преобразование температуры, и МК вынужденно приходится ждать завершения преобразования. Здесь же просто прочесть регистры без ожиданий на преобразование/вычисление. Более того - у нас есть возможность "читать" в Fast Mode. :dont_know:
Аlex писал(а):
но не видишь другую 1/32-ую. Которая и является минимальным квантом для несущей.
Я её вижу. :) Только пока не понимаю чем она так мешает. Такты разве не таймер считает? :dont_know:

_________________
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:54:19 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
У меня даже для одного считывания в 1.7 не помещается. Внимательно читаем
Цитата:
Далее либо условие остановки и следом условие старта, либо просто рестарт.

Т.е. потоком считывать у меня не получается. Если уложиться в 1.7 , то без разницы как считывать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 13:55:57 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
korob писал(а):
Только пока не понимаю чем она так мешает. Такты разве не таймер считает?
Всё очень просто.
Каждый квант времени, на несущей частоте, увеличивается счётчик периода и сравнивается со значением скважности. И, в зависимости от результата на выходе компаратора, принимается решение.
Это принцип PWM'а. А тут он программный. Каждый квант, таймер дёргает прерывание. И делаются определённые вычисления - счётчик, сравнение, вывод результата на PIN, ....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 14:06:14 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Аlex
Это общий принцип построения алгоритма. Сделайте считывание данных с ДСки за 1.7 мсек.. Остальное приложится.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 14:08:47 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
otest, а без привязки к индикации не получится ?
Индикация, по-любому, будет крутиться в прерывании таймера. Почему бы не реализовать работу с DS'кой в основном потоке ? Спокойно, не спеша, с чувством-толком-расстановкой ... :))

Добавлено after 1 minute 20 seconds:
Сделайте считывание данных с ДСки за 1.7 мсек..
Я до сих пор не могу взять в толк, откуда взялась эта циферка ?
Почему мы должны уложиться именно в этот промежуток времени ? :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 14:13:22 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Основной поток-1.7мс светим разрядом +0.25 мс пауза ,и в это же время считываем ДС.( Больше негде)
Дальше идёт следующий разряд с такими же интервалами. И т.д.
1.7 желание КОРОБа


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 14:20:24 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
otest писал(а):
Основной поток- ....
А, Вы без прерываний хотите сделать. Всё понятно тогда.... :roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 14:39:41 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Сделайте с прерыванием. На что прерываться будете?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 15:03:01 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Изображение
Вот чтение одного байта (регистра) из DS3231 на 400 кГц тактах. Справа видно время, за которое он прочитался.
Время (часы-минуты) содержится в двух регистрах, так что нужно добавить 26 мкс еще на один байт, всего 142 мкс на чтение. Еще некоторое время (зависит от МК и его частоты) на распаковку нибблов этих двух регистров в 4-х элементный массив, после чего вывод на индикатор.
Если не отобрать секунды, то считывать достаточно раз в секунду.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 15:16:17 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Где программа часов для korobа ? Ваши теоретические рассуждения похожи на упрёки и отмазки.
Вы сколько времени готовили ДСку для считывания?
Считать готовое как 2 байта передать. Мне ещё НОПить приходилось.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 16:35:41 
Модератор
Аватар пользователя

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

Я уже сказал - я бы сделал, если бы было железо. Протеусом не пользуюсь уже много-много лет, он у меня не установлен и ставить его не хочу. Предпочитаю реальное железо :dont_know:

Вас ни в чём не упрекаю. Делать или нет, и как делать, - Ваше право.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 16:55:24 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Право моё, но мне интересно какая часть программы будет обрабатываться в прерывании.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на PIC16F628 + DS3231
СообщениеДобавлено: Чт фев 18, 2021 17:19:46 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 5
Медали: 1
Получил миской по аватаре (1)
Динамическая индикация, по всей видимости :roll:
А в основном потоке, спокойно и не спеша, работаем с часами.


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

Часовой пояс: 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