Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

MCU (PIC) и големи отброяваня / закъснения - КАК ?
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=1261
Страница 1 от 1

Автор:  the_real_maniac [ Пон Ное 14, 2005 11:20 pm ]
Заглавие:  MCU (PIC) и големи отброяваня / закъснения - КАК ?

Т.е искате закъснение от порядъка на много повече от 1us, 1s , 1h , 2h, 3h ...
примерно: 12 часа,24 часа, 48, 72, седмица, месец, година дори.

КАК ?

Лично аз в момента се питам за пик как , значи имам 2 идейки, но и двете ми се виждат дървени ...

- Външен такт , който да е страааааашно бавен (простичко казано)
- пълнене и чакане на таймер Х по 50 билиона пъти (което хем е страшно дървено,хем нонстоп трябва да се пълни тоя таймер и изчиства флага за "препълване" ).

Докато минава този период голям на чакане си се върши някаква работа, т.е не нон-стоп , но идеята е ДА МОЖЕ ДА СЕ върши работа по време на отброяването.

Автор:  bateAz [ Вто Ное 15, 2005 12:59 am ]
Заглавие: 

Пускаш едно прекъсване от таймер на колкото дойде - напр. 100 пъти в секунда. Правиш един мижав брояч до 100, като го инкрементираш ( нали знаеш какво е инкремент :evil: ) при всяко прекъсване. Като стане == 100, ( това ще се случва точно веднъж в секундата ) го нулираш и увеличваш втори брояч, напр до 3600, и там правиш същото. Така ще имаш събитие веднъж на един час. Продължаваш така пракрически безкрайно и теоретично можеш да си направиш интервал и 1000 години. Естествено във времето между прекъсванията пика ще си прави нещо друго.
Има обаче едно голямо "НО" : нема такъв PIC, дето да работи толкова дълго без да забие или да се нашморка. :lol:

Автор:  Реконструктор [ Вто Ное 15, 2005 1:22 am ]
Заглавие: 

По принцип, ако фалшивите "програмни езици", дето ги ползват за тия пикове, поддържат 64 битова аритметика, може направо една 64 битова променлива да се инкрементира. :)

Автор:  Nikola Kirov [ Вто Ное 15, 2005 1:40 am ]
Заглавие: 

В IAR има 64 битов long long.

Автор:  Gogo [ Вто Ное 15, 2005 8:38 am ]
Заглавие: 

А не може ли да си сложиш един външен RTC (например на Dallas)? Това ти решава проблема с годините, точността и консумацията.

Автор:  Цецо [ Вто Ное 15, 2005 11:37 am ]
Заглавие: 

Е бате, аре стига глупости сега. Нема такъв ПИК дето да забива от само себе си. И като се има предвид че са общо взето устойчиви на въшни вляния - абе ако си прочел добре ератите и ти е ОК софтуера - не виждам проблем да инкрементираш и 1024 битова променлива и да закъсняваш и седмици.

Абе навремето за обучение съм правил часовници с 16F84. Ами работи си година без да го пипам. Е акумулира си грешка, ама то не зависи от ядрото, а от неточност на външния клок. Ама на кой му пука, то просто е музеен експонат.

Та съвета ми е - прави го програмно. Генерирането на външен клок с много ниска честота - под 0,01Hz си е трън в гащите.

Автор:  Predator_MF [ Вто Ное 15, 2005 2:36 pm ]
Заглавие: 

DS1307 върши чудесна работа :)

Прикачени файлове:
Коментар на файл: Платката е с PIC16F877A
board_runtime.jpg
board_runtime.jpg [ 9.25 KiB | Прегледано 3937 пъти ]

Автор:  Nikola Kirov [ Вто Ное 15, 2005 3:13 pm ]
Заглавие: 

Може да ползваш и HT1381,струва някакви стотинки

Автор:  Gogo [ Вто Ное 15, 2005 3:32 pm ]
Заглавие: 

Това НТ1381 кой го продава в България?

Автор:  Nikola Kirov [ Вто Ное 15, 2005 4:33 pm ]
Заглавие: 

Маи от футурел ги вземах,ако не е при тях съм ги вземал от комет

Автор:  the_real_maniac [ Вто Ное 15, 2005 7:54 pm ]
Заглавие: 

bateAz написа:
Пускаш едно прекъсване от таймер на колкото дойде - напр. 100 пъти в секунда. Правиш един мижав брояч до 100, като го инкрементираш ( нали знаеш какво е инкремент :evil: ) при всяко прекъсване. Като стане == 100, ( това ще се случва точно веднъж в секундата ) го нулираш и увеличваш втори брояч, напр до 3600, и там правиш същото. Така ще имаш събитие веднъж на един час. Продължаваш така пракрически безкрайно и теоретично можеш да си направиш интервал и 1000 години. Естествено във времето между прекъсванията пика ще си прави нещо друго.
Има обаче едно голямо "НО" : нема такъв PIC, дето да работи толкова дълго без да забие или да се нашморка. :lol:


Eеее ... аре де - да не знам какво е инкремент ... хах
Това че не бях ползвал асемблер до преди 2 месеца не значи , че не съм ползвал програмен език (мисля казах , че се занимавам от време на време с малки задачки системно програмиране на С под Линукс - нищо кой знае колко сериозн ообаче ;) ).

Та , абе ясно , чеможе едно RealTimeClock с 32кХз кварц, ама това нон-стоп пълнене на таймер и следене или пък с променливата пак нон-стоп с нея ще се занимава, виж говоти външни ис-та по бива ,само да има как да се чете лесно данните, което мисля го има.

Благодаря :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/