Ладна, тогда вот вам еще одни часы(с терометром правда)
на меге8 для полного щастья. Все работает все отлажено , щитает от часового кварца. Проц тактируеться от внутреного Рс генератора на 2МГЦ. Все что связано с термометром , можите постирать с исходника.
Написано на С
Min - установка минут
Hour - установка часов
Alam - установка будльника, тут же и вкл\выкл будульник
Time - при нажатии и удерижвании устанавливатсья время или часы (нажал и патом устанавливаеш часы\минуты кнопками)
BT66 - трех новагя музыкальная микросхема на будльник, может быть любая, любой сложности но покдлючать надо так как нарисовано.
Динамик - любой
Индикатор с общим АНОДОМ, если с катодом брать просто тарнзисторы
взять НПН, в програме ничего меня не нада.
ooogo при смене кварца нужно поменять число сравнения расчет которого 4 000 000 *0.5 / 250 = 7812.5 =1E84 а еще лучше
4 000 000 *0.5 / 64 = 31250 =7A12
ldi Temp1,0b00000011
out Tccr1b,Temp1 ;тактовый сигнал /64
ldi Temp1,0x7A
out Ocr1ah,Temp1
ldi Temp1,0x12
out Ocr1al,Temp1 ;запись числа сравнения 31250 (0.5сек. при 4мгц)
Никакого добавления не надо прерывания не зависят от программы (задержек и т.п.) они будут вызываться каждые 0.5сек.(в датыше расписано как это работает)
Протеус сам компилирует в нем встроеены компиляторы AVRASM AVRASM2. А так AVRASM(в обучалке написано).
Да 256 просто при 64 целое число получаеться.
Прерывания реже вызываться небудут. Будет таимер счетчик медленнее чситать. Прерывание вызываеться при совподении таимера счетчика и числа сравнения сразуже при совподении. а таимер/счетчик работает сам посебе.... никакие задержки в программе на прерывания не влеяють.
собирал я STK200 так его и не запустил. Досихпор шью все через 5 проводков и Uniprof. Меня устраивает(если невидно разници зачем лишнее заморочки )
SeamaNCOS Спасибо за подсказки, еще вопросик, не совсем понимаю математику расчета времени задержек, растолкуешь?
;***********задержка***************************************
Delay:
ldi Temp1,0
ldi Temp2,5
dll: dec Temp1
brne dll
dec Temp2
brne dll
ret
исходник прикрепил, с отчетом времени вроде все правильно должно быть, а вот с динамичской индикацией не уверен. Надо же что бы за 0.1с успевать отобразить 4 цифры, а там намного чаше!
разници что чаще. можно и без задержки делать.
сейчас исходник гляну
да все ок.
но предупреждаю сразу они будут работать нормально если кварц будет точно 4МГц а это врядли (погрешность есть всегда). допустим если он будет 4000001 часы будут спешить а если 3999999 будут отстовать.
но предупреждаю сразу они будут работать нормально если кварц будет точно 4МГц а это врядли (погрешность есть всегда). допустим если он будет 4000001 часы будут спешить а если 3999999 будут отстовать.
понимаю, этот эффект будет на любых часах с отчетом производимым мк, поэтому и думаю как сделать програмную корректировку хода. люди делают каждые 10 мин задержку на определенную величину, но не пойму, тогда впринцепе секундный интервал должен быть меньше, что бы регулировать как отстование хода часов, так и опережение? sidya собрал еще одну прошивку, понизил частоту обновления цифр, индикаторы должны гореть чуть ярче, но возможно будет видно мерцание!
надо переписывать прошивку чтоб считал от часового кварца как в посте Pippeytz. будет точность хорошая.
Хорошая мысля, ведь контроллер ничего больше делать не будет, и кварц без кондюков ставиться, и потребление мк маленькое, можно будет часовые батарейки поставить! Как я сам не догадался ?
получаеться 32768*0.5/64=256 или 32768*0.5/256=64
За сутки минуты можно не поймать, надо бы на недельку точность надо будет подстраивать кондюками на кварце, или кварц подбирать! sidya Давай со схемой железки с общим анодом определимся!?
на attiny2313 неполучиться тактировать мк с внутреннего кварца а таимер с внешнего это только ма меге. можно поставить внешний генератор и повесить его на 7 ногу int1. а индикатор перекинуть на 8 ногу.
прошивку поправить 5мин
ooogo собрал это http://licrym.org/index.php/%D0%9F%D1%8 ... 1%81%D1%8B зашил прошивкой что ты мне кдал,в результате горят все нули и мигает точка-все отсчета времени нет на кнопки нереагирует назначение выводов на печатке подправил как должно быть