forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
hodiny reálneho času
Jdi na stránku 1, 2, 3, 4, 5, 6, 7  Další
 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
fiam
Anonymní





PříspěvekZaslal: 26 listopad 2006, 20:13    Předmět: hodiny reálneho času Citovat

Mám tady požadavek na aplikaci logeru a to pro reálny čas. Dělám s PIC a nemůžu najít jakékoli PIC s reálnym časem. Nerad bych to emuloval pomocí timeru, protože kontrolér bude většinu času spát a probudí jej jenom vnější impuls. Nechci (vzhledem ke spotřebě) toto řešil vitřním oscilátorem a to nemluvím o dostatečné přesnosti. Ta je požadovaná +-1hod/rok. Existuje něco takové, nebo jste to už někdo řešil a jak?
Návrat nahoru
 

 
Unknown Hero
bývalý moderátor
bývalý moderátor


Založen: 10.10.2006
Příspěvky: 8
Bydliště: Mohelnice (SU)

PříspěvekZaslal: 27 listopad 2006, 14:27    Předmět: Citovat

Jestli hledáš PIC s reálným časem, tak hodně štěstí protože takový PIC neznám a asi ani není. Sad Osobně jsem to řešil s použitím obvodu DS1302 od firmy Dallas http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2685 Komunikuje po třech drátech a jediné externí součástky jsou krystal na 32kHz a baterka pro zálohování pro kterou se dá nastavit i nabíjecí proud. Jestli máš zajem tak ti pošlu zdroják v Asm.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
fiam
Účastník
Účastník


Založen: 26.11.2006
Příspěvky: 18
Bydliště: Svitavy

PříspěvekZaslal: 05 prosinec 2006, 22:30    Předmět: Citovat

Taky to tak vidím. Už jsem prohrabal možné i nemožné a vyšlo mi to stejně.
Tomu zdrojáku bych byl pochopitelně hrozně rád, vždyť by mi to ulehčilo kopu práce. Jěště jsem s tím nedělal tak mám trošku bobky Wink.
Předem dík

Arrow administrator: příspěvek byl upraven
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 06 prosinec 2006, 0:54    Předmět: Citovat

Unknown Hero: Myslím, že pokud ten zdroják není nějak nekale získaný Twisted Evil, tak ho můžeš hodit přímo sem do code. Určitě to bude zajímat i někoho jiného než jen fiama. Samozřejmě tě do toho nenutím - je to pouze na tobě. Chtěl jsem tím jen říci, že má fórum zatím velké rezervy ve velikosti databáze Wink.

Ještě bych dodal, že nejen Dallas vyrábí hodiny reálného času. Stačí hledat Real Time Clock a člověk zjistí, že existuje spousta výrobců, o kterých nikdy neslyšel Smile.

_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
fiam
Účastník
Účastník


Založen: 26.11.2006
Příspěvky: 18
Bydliště: Svitavy

PříspěvekZaslal: 06 prosinec 2006, 18:31    Předmět: Citovat

administrator napsal:
Unknown Hero: Ještě bych dodal, že nejen Dallas vyrábí hodiny reálného času. Stačí hledat Real Time Clock a člověk zjistí, že existuje spousta výrobců, o kterých nikdy neslyšel Smile.

To je pravda, ale ten Dallas sa mi zdá nějak lépe popsaný a ta přesnost na výběr. Nemám moc dobré zkušenosti se všelijakými napodobeninami, vždy je tam nějaká záludna odlišnost, drobná, ale komplikuje život. Viz například 555 a co se s nim stalo. Ušetříš 5korun (nebo jen jednu) a zrovna ve tvém zapojení se ta odlišnost projeví. Murphyho zákony platí vždy a všude...
Nejvíce mě štve dostupnost součástek. Ten Dalas, myslím, koupíš kdykoli, co se o jiných obvykle nedá říci. Konkrétně u 555 je problém v distributorech, kteří ti vnutí to, co je z jejich hlediska nejvýhodnější.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Unknown Hero
bývalý moderátor
bývalý moderátor


Založen: 10.10.2006
Příspěvky: 8
Bydliště: Mohelnice (SU)

PříspěvekZaslal: 07 prosinec 2006, 11:32    Předmět: Real Time Clock Citovat

Je to jenom návrh co použít, nikomu nic nenutím. Určitě se dá najít spousta obvodů, ale mě se DS1302 zamlouvá hlavně kvůli možnosti nastavení proudu pro nabíjení záložní baterie. Hodně oblíbený je taky PCF8583.

kód:

;*****************************************************************
;
;         Podprogramy pro komunikaci s DS1302
;
;*****************************************************************

;**************************************************
; SET_TIME - zapsat čas
; INPUT:
;**************************************************
SET_TIME
   MOVLW   B'10111110'   ; zapíše do W hodnotu BEh
   MOVWF   TIME_TX      ; přesun z W do registru TIME_TX
   BSF      RST         ; do log 1 nastaví pin RST
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
;TIME_WRITE_8
   MOVLW   TIME_TX_ADD   ;
   MOVWF   FSR         ;
   MOVLW   D'8'      ; do W zapíš dek. 8
   MOVWF   COUNT2      ; přesun do registru COUNT2
TW1                  ; návěstí pro smyčku
   MOVF   INDF,W      ;
   MOVWF   TIME_TX      ;
   CALL   TIME_WRITE_1;
   INCF   FSR,F      ;
   DECFSZ   COUNT2,F   ;
   GOTO   TW1         ;
   BCF      RST         ;
  RETURN

;***********************************************
; GET_TIME - přečíst čas
; INPUT:NONE
; OUTPUT:
;***********************************************
GET_TIME
   MOVLW   B'10111111'   ; zapíše do W hodnotu BFh
   MOVWF   TIME_TX      ; W do registru TIME_TX
   BSF      RST         ; do log. 1 pin RST
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
;TIME_READ_7
   MOVLW   TIME_RX_ADD   ;
   MOVWF   FSR         ;
   MOVLW   D'7'      ;
   MOVWF   COUNT2      ;
TR2                  ;
   CALL   TIME_READ_1   ;
   MOVF   TIME_RX,W   ;
   MOVWF   INDF      ;
   INCF   FSR,F      ;
   DECFSZ   COUNT2,F   ;
   GOTO   TR2         ;
   BCF      RST         ;
  RETURN

;************************************************
; TIME_READ_1 - čte hodnotu z DS1302 SINGLE-BYTE READ
; INPUT: NONE
; OUTPUT:
;************************************************
TIME_READ_1
   BANKSEL   TRISA      ; vybere Banku 1
   BSF      TRISA,0    ; I_O je vstup
   BANKSEL 0           ; nastavení Banky 0
   MOVLW   D'8'      ; do W zapíš dek. 8
   MOVWF   COUNT1      ; přesun do registru COUNT1
TR1                  ; návěstí pro smyčku
   BCF      SCLK      ; do log. 0 pin SCLK
   BCF      STATUS,C   ; do log. 0 bit Carry v registru STATUS
   BTFSC   I_O         ; testuje jestli pin I_O je v log. 0 ANO přeskočí řádek NE pokračuje na další řádek
   BSF      STATUS,C   ; do log. 1 bit Carry v registru STATUS
   RRF      TIME_RX,F   ; rotace registru TIME_RX přes Carry bit výsledek zpět do TIME_RX
   BSF      SCLK      ; do log. 1 pin SCLK
   DECFSZ   COUNT1,F   ; odečte jedničku od obsahu registru COUNT1 a výsledek uloží zpět do registru. Je-li výsledek 0, následující instrukce se neprovede.
   GOTO   TR1         ; skok na návěstí TR1
   BANKSEL   TRISA      ; vybere Banku 1
   BCF      TRISA,0      ; I_O je výstup
   BANKSEL 0         ; vybere Banku 0
   BCF      SCLK      ; do log. 0 pin SCLK
  RETURN

;************************************************
; TIME_WRITE_1 - zapíše hodnotu do DS1302 SINGLE-BYTE WRITE
; INPUT: TIME_TX
;************************************************
TIME_WRITE_1         ; návěstí
   MOVLW   D'8'      ; do W zapíš dek. 8
   MOVWF   COUNT1      ; přesun do registru COUNT1
TLOP               ; návěstí pro smyčku
   BCF      I_O         ; do log. 0 pin I_O
   BCF      SCLK      ; do log. 0 pin SCLK
   BTFSC   TIME_TX,0   ; testuje bit 0 v registru TIME_TX je v log. 0 ANO přeskočí řádek NE pokračuje na další řádek
   BSF      I_O         ; do log. 1 pin I_O
   RRF      TIME_TX,F   ; rotace doprava registru TIME_TX
   BSF      SCLK      ; do log. 1 pin SCLK
   DECFSZ   COUNT1,F   ; odečte 1-čku a testuje jestli registr je 0 jestli ANO přeskočí řádek NE tak skok na návěstí TLOP
   GOTO   TLOP      ; skok na návěstí TLOP
   BCF      SCLK      ; do log. 0 pin SCLK
  RETURN

;************************************************
; INIT_DS1320 - provede nastavení registru u DS1302
; INPUT: TIME_TX
;************************************************
INIT_DS1320

   call   CONTROL_BIT_CH

;na adresu 90h zapíše AC nastaví TRICKLE CHARGE REGISTER
   BSF      RST         ; začátek zápisu
   MOVLW   90h         ; zapíše do W hodnotu 90h ;
   MOVWF   TIME_TX      ; přesun z W do registru TIME_TX
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
   MOVLW   B'10100101'   ; zapíše do W hodnotu ACh
   MOVWF   TIME_TX      ; přesun z W do registru TIME_TX
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
   BCF      RST         ; konec zápisu

  RETURN

;************************************************
; CLR_RAM - Smaže registry pro uložení hodnot
;************************************************
CLR_RAM
   CLRF   SEC_W      ;SEKUNDY
   CLRF   MIN_W      ;MINUTY
   CLRF   HOUR_W      ;HODINY
   CLRF   DATE_W      ;DNY
   CLRF   MONTH_W      ;MESICE
   CLRF   YEAR_W      ;ROKY
   CLRF   DATE_WEEK_W   ;DEN V TYDNU

  RETURN
;************************************************
;   PROTECT_BIT_CLR - smaže ochranný bit proti zápisu
;************************************************
PROTECT_BIT_CLR
   BSF      RST         ; začátek zápisu
   MOVLW   8Eh         ; nastaví CLOCK HALT FLAG do log. 0
   MOVWF   TIME_TX      ; přesun z W do registru TIME_TX
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
   MOVLW   B'00000000'   ; zapíše do W hodnotu ACh
   MOVWF   TIME_TX      ; přesun z W do registru TIME_TX
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
   BCF      RST         ; konec zápisu

  RETURN
;************************************************************
; CONTROL_BIT_CH - po resetu se zkontroluje bit CH v registru sekund
; přečte registr sekund -> otestuje bit7 ->
; ANO je tak ho vynuluje a zapíše zpět do registru sekund
; NE není tak nic mas tam vir
; na adresu 80h zapíše D0 nastaví CLOCK HALT FLAG do log. 0
;************************************************************
CONTROL_BIT_CH
;adresa registru sekund pro čtení
   MOVLW   81h         ; zapíše do W hodnotu 81h
   MOVWF   TIME_TX      ; W do registru TIME_TX
   BSF      RST         ; do log. 1 pin RST
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
;čtení hodnoty
   CALL   TIME_READ_1   ;
   BCF      RST         ;
   MOVF   TIME_RX,W   ;
;testování bitu CH
   BTFSS   TIME_RX,7   ; bude 0 následují instrukce se provede
  RETURN
;adresa registru sekund pro zápis
   MOVLW   80h         ; zapíše do W hodnotu 81h
   MOVWF   TIME_TX      ; W do registru TIME_TX
   BSF      RST         ; do log. 1 pin RST
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
;nulování bitu CH a zapsání
   BCF      TIME_RX,7   ; vynuluje bit 7 v registru
   MOVF   TIME_RX,W   ;
   MOVWF   TIME_TX      ; W do registru TIME_TX
   CALL   TIME_WRITE_1; volá podprogram TIME_WRITE_1
   BCF      RST         ;
  RETURN
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
fiam
Účastník
Účastník


Založen: 26.11.2006
Příspěvky: 18
Bydliště: Svitavy

PříspěvekZaslal: 07 prosinec 2006, 22:59    Předmět: Re: Real Time Clock Citovat

Unknown Hero napsal:
; ANO je tak ho vynuluje a zapíše zpět do registru sekund
; NE není tak nic mas tam vir

Hezké. A prý jsou programátoři suchaři.... Very Happy
Mockrát děkuji za pomoc. Přehledné a jasné.
V tomto zapojení nebudu záložní baterii používat, protože po výpadku hlavní baterie nemá pokračování funkce RTC smysl. Důležitá je pro mě spotřeba, přesnost a ty proklamované dvě minuty za rok jsou snesitelné, proto volím DALLAS.
Ještě jednou díky.
Peter
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Marty
Anonymní





PříspěvekZaslal: 09 březen 2007, 0:12    Předmět: Citovat

Chtel bych poprosit, jestli by nekdo nemel zdrojak pro obsluhu tohoto RTC v Cecku (nejlepe pro AVRko) Moc by se mi to hodilo - usetrilo by mi to cas. Predem diky Wink
Návrat nahoru
 

 
beagle
Přispěvatel
Přispěvatel


Založen: 1.2.2007
Příspěvky: 29

PříspěvekZaslal: 04 listopad 2008, 19:47    Předmět: Citovat

Taky bych chtěl použít tento RTC obvod a chtěl jsem se zeptat na komunikaci,jestli musím cyklicky číst registry z RTC obvodu nebo se např. při změně sekund nastaví nějaký příznakový bit, prosím jak to řešíte Vy?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1166
Bydliště: Přerov

PříspěvekZaslal: 04 listopad 2008, 20:58    Předmět: Citovat

Zkoušel jsem zatím DS1302 a DS1337 a ani jeden nemá v sobě registr, kde by bylo možné vyčíst info o tom, že vteřiny poskočily kupředu.
U DS1302 cyklicky čtu registr vteřin a když dojde ke změně, přečtu vše. U DS1337 čtu všechno najednou.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Andrew
Anonymní





PříspěvekZaslal: 29 listopad 2008, 13:30    Předmět: DS1302 a 8051 Citovat

Nemáte někdo zkušenost s kombinací DS1302 a 8051 (nebo s nějakým z potomků), mám problémi s programem, nikdy jsem s žádným takovým obvodem nekomunikoval a nevím jak začit. Sad
Návrat nahoru
 

 
Xred
Anonymní





PříspěvekZaslal: 29 listopad 2008, 14:20    Předmět: Citovat

Zkoušel jsi použít google? Wink

http://www.geocities.com/microcontrollers/2051projects/rtcclock/rtc.html

http://mstar.bloguje.cz/303373-druha-verze-hlavniho-programu-pro-hodiny.php
Návrat nahoru
 

 
vilem
Účastník
Účastník


Založen: 9.12.2008
Příspěvky: 13

PříspěvekZaslal: 09 prosinec 2008, 20:39    Předmět: Citovat

Mohl by výše ukázaný kód být funkční i pro kombinaci DS1307+PIC16F877A ??
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1166
Bydliště: Přerov

PříspěvekZaslal: 10 prosinec 2008, 7:45    Předmět: Citovat

Program od Xreda je na Atmel.

Popis komunikace máš na str. 12 a 13 datasheetu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Anonymní






PříspěvekZaslal: 27 květen 2009, 17:41    Předmět: Citovat

Unknown Hero napsal:
Jestli hledáš PIC s reálným časem, tak hodně štěstí protože takový PIC neznám a asi ani není. Sad Osobně jsem to řešil s použitím obvodu DS1302 od firmy Dallas http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2685 Komunikuje po třech drátech a jediné externí součástky jsou krystal na 32kHz a baterka pro zálohování pro kterou se dá nastavit i nabíjecí proud. Jestli máš zajem tak ti pošlu zdroják v Asm.

Hoši hoďte ten zdroják jsem pro ostatní
Návrat nahoru
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
Jdi na stránku 1, 2, 3, 4, 5, 6, 7  Další
 
Strana 1 z 7
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2019 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)