Часы реального времени на кварце 16 мГц

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Часы реального времени на кварце 16 мГц

Сообщение COKPOWEHEU »

В даташитах он указан под юникод чтобы не парить мозг с разными синтаксисами... В каждой среде разработке присутствует таблица перевода асм команд в си или бейсик как в баскоме, да и асм библеотеки никто не отменял. каково черта вы все пхаете в флеш память контролерра она предназначина только для выполнения основных функций.
И часы можно активировать в 8 меге одной командой, а не городить ваш гавнокод :evil: :evil: :evil:
Вы несете чушь.
1. Вы не знаете что такое Юникод или Ассемблер, я вообще не представляю как их можно спутать но у вас получилось.
2. Переводить асм команды в команды на ЯВУ (Языках Высокого Уровня если кто не в курсе) обычно не надо.
3. Обычно наоборот переводят команды с ЯВУ на ассемблер, в частности именно так выглядит один из этапов компиляции.
4. Любой исполняемый код так или иначе должен быть записан в флеш-память контроллера (некоторые, например ARM умеют и из ОЗЦ выполнять но основной код все равно в flash). Причем независимо от того где он, в main или библиотеках.
5. Активировать часы одной командой НЕЛЬЗЯ НИКАК потому что надо задать предделитель таймера и разрешить прерывание от него, это минимум 4 команды.
6. (уже к более позднему посту) А если захочется чтобы контроллер не только считал по 1Гц а например динамическая индикация, опрос датчиков, эмуляция USB (тут часовым не обойтись НИКАК) и в то же время генерировать тот самый меандр.
7. Городить свой говнокод гораздо полезнее чем пользоваться чужим без малейшего понимания принципов.
8. Если выучили начали учить BASIC вместо нормального языка и думаете что контроллер выполняет каждую его инструкцию за 1 такт даже если эта инструкция - процедура, вы глубоко заблуждаетесь.
9. Если и после предыдущего пункта не возникло желания хоть немного разобраться поясню: каждая команда ЯВУ транслируется в некоторое число команд ассемблера, которые потом компилируются в машинный код (тот самый магический .hex файл структуру которого вы наверняка не осилили ибо несколько килобайт). Причем компилируется ВЕСЬ код включая процедуры в самых закоулках системных библиотек и даже если они ни разу не используются.
10. Начинать насилие изучение контроллера сразу с ЯВУ - плохая идея чреватая в дальнейшем (да и сразу, но сразу это не так заметно) неуловимыми ошибками с необновляющимися переменными (привет volatile) ошибками простейшей математики (привет регистр SREG в прерываниях), тормозами на ровном месте (привет делению и переменным типа float а лучше long double) и прочему говнокоду.
11.
Кстати даташиты читаем и не тормозим для меги 8 рекомендуются кварцы определенных кратных чисел а тоесть 1,4,8,12... На 16 уже указано что работа не стабильная будет ибо осцилятор расчитан на определеный такт счета.
Ну-ну. В серии ATtiny есть несколько контроллеров с ФАПЧ на 64 МГц->16.5 МГц. О стабильности тактового RC(!)-генератора говорит то что на нем запускают vusb а ведь известно что кварц гораздо стабильнее.
12.
Хочешь знать как на си сформировать часы сначала скажи какой компилятор яж тебе не экстрасенс....
Для такой простой задачи хитрые возможности отдельных компиляторов не нужны, достаточно стандартных. А стандартные возможности они стандартны и одинаковы для разных реализаций. Про системные библиотеки и "расширения" разговор отдельный.
13.
Config clock=Soft
Что это за шаманская конструкция? Внутренняя Ванга мне подсказывает что кроме ошибки от этого ждать нечего. В лучшем случае оно будет работать только для одного компилятора, камня, тактовой частоты и т.п.
14.
Твоюж нафиг что у тебя нет 8 центов на нормальный кварц
Так 16МГц это более чем нормально, близко к максимальной частоте контроллера. Если понадобится снижать потребление - sleep а вот если потребуется поднять скорость на часовом - хана.
Итог: Думать потом говорить а не наоборот. Разобраться-таки в основах функционирования контроллеров. Забыть про стандартные библиотеки и ЯВУ до появления задач на хитрые интерфейсы.
Реклама
JeysonRou
Открыл глаза
Сообщения: 46
Зарегистрирован: Ср янв 16, 2013 06:51:09
Откуда: Сам не знаю...

Re: Часы реального времени на кварце 16 мГц

Сообщение JeysonRou »

Пример в Баскоме
(код использовался на меге8, 128, 169 и еще некоторых моделях со своими RTC встроеными!!!.)

'-------------------------------------------------------------------------------

Enable Interrupts

'-------------------------------------------------------------------------------
RTC

Config Clock = Soft
Config Date = Dmy , Separator = - DD-MM-YY
Time$ = "00:00:00"
Date$ = "05.02.13"



Home
Lcd Time$ ; "" ; Date$





'_day, _month, _year, _sec, _hour, _min

Автоматически созданые переменные.

'_day = 1

'в памяти _year хранится только год не век!!!
Return
'--------------------------------------------------------------
некотырые компиляторы отличаются друг от друга синтаксисом команд и например в случаи с безобразной программой CodeVision AVR, код написаный на 6 Студии, Вижн отказывается принимать изза банального несоответствия синтаксиса...

Остальное чесно мне лень писать
P.S. Учи мат часть контроллеров по расчету параметров и читай внимательно даташиты не будешь позорится.

И вот тебе вырезка с даташита...
Для резонаторов, максимальная частота равна 8 МГц с CKOPT незапрограммированное и 16 МГц с
CKOPT запрограммирован. C1 и C2 должны быть всегда равны для обоих кристаллов и резонаторов.
Оптимальное значение конденсаторов зависит от кристаллов или резонатор в использовании, количество бродячих
емкостей и электромагнитных шумов окружающей среды. Некоторые первоначальные руководящие принципы для
выбора конденсаторов для использования с кристаллами приведены в таблице 4. Для керамических резонаторов,
значения конденсатора указанных изготовителем должны быть использованы.

Вам пытаешся обьяснить как будет лучше и как оно будет стабильнее работать согласно инструкциям производителя.



Убрал то, что прямо не относится к обсуждению технических проблем.
Нарушение Правил форума п. 2.3

aen
Реклама
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Часы реального времени на кварце 16 мГц

Сообщение COKPOWEHEU »

А ответ-то зачем потерли?
Скорее всего это было случайно поэтому повторю:
JeysonRou привел кусок какого-то кода и цитату из даташита и думает что что-то доказал. В фирменном даташите в конце указываются диапазоны частот и напряжений на контроллере и для большинства область СТАБИЛЬНОЙ работы лежит в пределах 0 - 16 МГц (для тинек чаще 20 МГц, для Classic - 8МГц) 4.5 - 5 В и 0 - 8 МГц (тут для tiny/classic не помню) 2.7 В (для малопотребляющих серий от 1.8 В), расчеты конденсаторов на кварце и фузов тут вообще не к месту, не о них речь.
Также ни один из моих аргументов не был опровергнут, вместо них были обвинения в тупости (сейчас потерты).
P.S. Извиняюсь за возможную резкость но некоторые личности лезущие с советами "делайте так как я недавно прочитал в умной книге, нужно всего-то перейти на другой язык программирования и перепаять пол-схемы а так все просто!" иногда вызывают негативные эмоции.
Ответить

Вернуться в «Разные вопросы по МК»