Отговори на тема  [ 61 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща
Комуникация с часовник PCF8583P 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Ето ти и малко компилиран код да видиш как вика функциите (това е точно за такъв часовник)

F1_000756 equ $ ; in [ivo-6.bas] Seconds=hbusin %10100001,2
Movlw 161
F@Call HBusout
Movlw 2
F@Call HBusout
F@Call HBusin2
Movwf SECONDS
F1_000757 equ $ ; in [ivo-6.bas] Minutes=hbusin %10100001,3
Movlw 161
F@Call HBusout
Movlw 3
F@Call HBusout
F@Call HBusin2
Movwf MINUTES
F1_000758 equ $ ; in [ivo-6.bas] Hour=hbusin %10100001,4
Movlw 161
F@Call HBusout
Movlw 4
F@Call HBusout
F@Call HBusin2
Movwf HOUR

едит : сори, кода е генериран за 18-ка. Файла дето го пуснах си е за 16-ка


Последна промяна Cekins на Чет Ное 02, 2006 4:29 pm, променена общо 1 път



Чет Ное 02, 2006 4:22 pm
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Чет Май 12, 2005 11:10 am
Мнения: 211
Мнение 
Само да ти кажа, че може би Gogo е прав, за такова просто нещо си направи таймерче, макар че може да си го направиш програмно и процесора пак да ти работи, а ако това те притеснява сложи си една ИС 4060. При нея с RC си правиш генератор и има делители до 2^14. Taка, че можеш да получиш страхотно големи времена. Вързваш ги към прекъсване и си готов. Освен това този чип има и ресет. Схемата CD4060 консумира 50 микроампера!!!


Чет Ное 02, 2006 4:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Е 8583 гори до 10 микроампера (по дейташиит). А и темата не е как да го избегнем, а как да го пуснем все пак :)


Чет Ное 02, 2006 4:36 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Hm
VANK написа:
Само да ти кажа, че може би Gogo е прав, за такова просто нещо си направи таймерче, макар че може да си го направиш програмно и процесора пак да ти работи, а ако това те притеснява сложи си една ИС 4060. При нея с RC си правиш генератор и има делители до 2^14. Taка, че можеш да получиш страхотно големи времена. Вързваш ги към прекъсване и си готов. Освен това този чип има и ресет. Схемата CD4060 консумира 50 микроампера!!!

Абе ако е само да му цъка на 5 минути ,не му трябва външни часовници и прочие работата е елементарна , TMR1 е 16 битов на входа му включваш делителя на 8 , и така при 4 MHz честота ще прекъсва на всяка 0,524288 секунда , като прекъсне намаляваш една или колкото клетки трябва за да достигне до 5 минути, и точноста ще е същата даже и по точна защото може да си компенсираш с тези клетки времето заемано от инструкциите. Когато достигнеш до последната клетка прави каквото трябва.
Иначе ще трябва да четеш постоянно RTC-то колко му е часа :roll:
А като искаш пак си сложи външен RTC да видиш колко е часа и като стане 17 да ти реве зумер да си ходиш :D :lol:


Чет Ное 02, 2006 4:46 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Пон Фев 21, 2005 2:14 pm
Мнения: 191
Местоположение: Varna
Мнение 
Този часовник може да генерира прекъсване на какъвто предиод му зададеш. Но мисля, че в случая не е правилно да се заобикаля проблема с други схемни или софтуерни решения. Така или иначе някой ден ще му се наложи да ползва и2ц. Ако не му тръгне памет примерно какви ще са съветите - слагай SPI или РАМ.

_________________
Шанс едно на милион, обикновено се случва девет от десет пъти.


Чет Ное 02, 2006 4:54 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
РТЦ-то все пак има аларми и таймери. С един-два записа по шината настройваш и забравяш ...


Чет Ное 02, 2006 4:55 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение УРА
Cekins, 10х мн за билбиотеката, тя оправи нещата :) проблема е бил в пика и проверките за край на всяка операция.
и добре, че най сетне Cekins разбра, че проблема ми бече да го пусна, ан е тая ми ти консумация. нямам батерии, няма слееп, няма консумация. целта беше да се чете и записва, да се настрои алармата на 5 мин и готово. като стане време, само пускам часовника наново и си продължавам там с мойта работа.
а ако наистина тръгне, ще ви кажа всъщност за какво го исках цялото това нещо :P


Чет Ное 02, 2006 5:01 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
ето каква е работата. след като един път го прочета, последващото четене задължително трябва да започне от адрес 00, не може да се прочете направо 06, примерно. и сега вече му намерих цаката.
значи касае се за машина, която има защита по време. трябва да работи само 15 дни и да спре. всеки ден тази машина се влкючва и изключва, и в началото на деня се проверява дали са станали 15 дни. през деня обаче ако тя може да работи (не са станали), тя си работи нонстоп, върши си редовната работа. ако са станали, тя блокира.
та, затова не исках да се занимавам с софтуерен часовник, щот трябва да се записва в рама, за да не губи времето при изключване, освен това по време на работа ще трябва да има прекъсване за обновяване на времето, което не ме устройва, тъй като машината работи по команда от оператора, асинхронно и да се случва в тоя момент да трябва да опреснява часовника, е кофти. освен това трябва всеки път при опресняване да записвам в рама, щото не се знае кога ще се изключи машината, а записа е с пределен брой цикли за запис.
ето защо този вариант ми се стори най удачен, и сега след като разбрах как да се справя с чипа, идеята ще стане :-)


Пет Ное 03, 2006 2:22 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Мда
didofen написа:
ето каква е работата. след като един път го прочета, последващото четене задължително трябва да започне от адрес 00, не може да се прочете направо 06, примерно. и сега вече му намерих цаката.
значи касае се за машина, която има защита по време. трябва да работи само 15 дни и да спре. всеки ден тази машина се влкючва и изключва, и в началото на деня се проверява дали са станали 15 дни. през деня обаче ако тя може да работи (не са станали), тя си работи нонстоп, върши си редовната работа. ако са станали, тя блокира.
та, затова не исках да се занимавам с софтуерен часовник, щот трябва да се записва в рама, за да не губи времето при изключване, освен това по време на работа ще трябва да има прекъсване за обновяване на времето, което не ме устройва, тъй като машината работи по команда от оператора, асинхронно и да се случва в тоя момент да трябва да опреснява часовника, е кофти. освен това трябва всеки път при опресняване да записвам в рама, щото не се знае кога ще се изключи машината, а записа е с пределен брой цикли за запис.
ето защо този вариант ми се стори най удачен, и сега след като разбрах как да се справя с чипа, идеята ще стане :-)

Е какво като прекъсва за часовник нали това са няколко микросекунди , да не би работника да е толкова бърз :D :lol:
Те точно затова трябва всичко да е вътре, иначе може да се въздейства (издевателства) върху външния часовник ,най малкото поне махане на батерия когато захранването е изключено и кой знае какво още.
Така че мини на идеята на повечето хора за софтуерна поддръжка на часовник, дори може да заложиш броячите да са направо сметнати колко дни да работи и на определено време ги записваш в еепром и като достигнат някаква стойност се блокира процесора при начално зареждане и спира да работи, елементарно е :D


Пет Ное 03, 2006 3:05 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
така е, ама не става да записвам непрекъснато. или как да определя на какъв интервал да записвам? горе долу на всеки час е добре, ама тогава няма да е на 15 дни, а на определен брой часове. иначе пак трябва батерия да се слага, а и шефа не иска часове, а 15 дни. за сега успявам да се справя с тоя часовник,, в понеделник ще включа и основната програма към тази за управлението му и ще пробвам, дали след 2 дни примерно ще спре да бачка. пак ще пиша какво е станало.


Пет Ное 03, 2006 3:13 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Пон Фев 21, 2005 2:14 pm
Мнения: 191
Местоположение: Varna
Мнение 
didofen написа:
ето каква е работата. след като един път го прочета, последващото четене задължително трябва да започне от адрес 00, не може да се прочете направо 06, примерно.


Можеш да четеш произволен адрес.

Код:
i2c_start(PCF8583+I2C_WRITE);
i2c_write(0x05);
i2c_rep_start(PCF8583+I2C_READ);
a = i2c_readAck();
b = i2c_readNak();
i2c_stop();


Така чета адреси 5 и 6 на часовника.

_________________
Шанс едно на милион, обикновено се случва девет от десет пъти.


Пет Ное 03, 2006 3:40 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
е да, ама пак има запис на адрес 05 предварително. не може само да се чете. веднъж прекъснал ли си цикъла на четене, и повече не иска, само при запускане на броенето и запис на друг адрес


Пон Ное 06, 2006 8:45 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Мда
didofen написа:
така е, ама не става да записвам непрекъснато. или как да определя на какъв интервал да записвам? горе долу на всеки час е добре, ама тогава няма да е на 15 дни, а на определен брой часове. иначе пак трябва батерия да се слага, а и шефа не иска часове, а 15 дни. за сега успявам да се справя с тоя часовник,, в понеделник ще включа и основната програма към тази за управлението му и ще пробвам, дали след 2 дни примерно ще спре да бачка. пак ще пиша какво е станало.

Хм явно ще си ползваш външен часовник, но мисля че този чип е твърде стар и няма да ти свърши работа .
DS-a има изход от делителя който се програмира на каква честота да е , записваш му да е на 1 Hz и този извод го вкарваш в процесора на входа на TMR0 и го караш да прекъсва от него , включваш си делителя и така вече ще имаш умножени секунди кратни на 2 според избрания делител на таймера , таймера може да го зареждаш при всяко прекъсване , например за 5 мин ти е необходим възможно най голям делител 4 и 181 (256-75 ) от таймера и така ще прекъсва всяка 5-та мин, когато прекъсне освен зареждането на таймера може да си четеш датата, но пак ти казвам има възможност по този начин за прецакване на системата ти чрез външна намеса !!!
Спред мен ако е скъпа машината трябва да е направено всичко вътре в контролера и вдигнат бита за защита .


Пон Ное 06, 2006 10:31 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение 
не ме притеснява намесата. слагам батерия за часовника, само в началото го настройвам да ми прекъсне на 15-ия ден, и след това машината може всеки ден да си се изключва и включва когато си поискаш. и то няма да е прекъсване, ами нормален редови вход и само в началото се проверява неговото ниво. при активно ниско ниво, се чака 6-битов код (не е необходимо по-голям), и при несъвпадение, машината не може да тръгне. след като се въведе, се продължава, дори се спира часовника, и вече не се проверява активиращия вход. това е


Пон Ное 06, 2006 11:10 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Hehe
didofen написа:
не ме притеснява намесата. слагам батерия за часовника, само в началото го настройвам да ми прекъсне на 15-ия ден, и след това машината може всеки ден да си се изключва и включва когато си поискаш. и то няма да е прекъсване, ами нормален редови вход и само в началото се проверява неговото ниво. при активно ниско ниво, се чака 6-битов код (не е необходимо по-голям), и при несъвпадение, машината не може да тръгне. след като се въведе, се продължава, дори се спира часовника, и вече не се проверява активиращия вход. това е

Българина е изобретателен особенно ако е някой който мисли че разбира , вижда че чипа е DS... рови в нета и си мисли а ма това е часовник пита шефа ми кога е работило ми да взема че да му сменя датата, представи си че е на 5 дена и така му слага по стара дата и ако си заложил на еди коя си дата да изключи , и така няма да изключи :D
Затова всичко се базира на работни часове и си е гарантироно че ще спре след толкова часа . :)


Пон Ное 06, 2006 4:54 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 61 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни