Fórum témák
» Több friss téma |
Fórum
Sziasztok!
Nekem olyat csinál a ds1307, hogy ha beállítom az órát és elemkimerülést idézek elő és bele teszek egy másikat, akkor a visszakapcsolás után nem szinkronizálja a mikrokontroller és nem írja ki az lcd-n az időt. Ha nem állítom be az órát és kiveszem az elemet, akkor működik rendesen. Azt is kipróbáltam, hogy alap állapotra visszaállítom a mikrokontrollerbe a beállításokat, de így se ment. Tudja valaki mi lehet a hiba?
A kapcsolás jónak tűnik de diódáknak a lehető legalacsonyabb nyitófeszültségű schottky diódákat használd különben viszonylag nagy lesz a veszteség. Ha máshol nem is, legalább a D2 pozícióban.
Gondolom másik IC-d nincsen, ebből nem rendel sokat az ember hobbi célra, csak ha valamiből több példány kell. Nincs ötletem. Ha a kristály nem oké, akkor nem mérne rendesen..
Akkor új 1307. Forrasztási hiba mentes panelen van?
Alap kérdés, polaritás oké az elemnél, 2,8V felett van? A nagyobb része a pozitív. Az elemfoglalat oké? Jó felé van belerakva az elem, fordítva rövidzár. Ha nem ezek akkor lehet hibás az RTC. Nekem hülye időt a hűtő tetején mutatott
Nincs hűtő a közelben?
Sziasztok!
Egy olyan kérdésem lenne,hogy mi lehet az oka annak ha rákötöm az elemet a ds 1307re akkor nem működik. Elem nélkül viszont tökéletes.Az elem rs2032 3v lithium.Leáll és 45.85.85 a kijelzés és
Szia!
Egy kérdés , az i2c csak 100khz-es órajellel megy, vagy 100khz alatti sebességgel bármilyen frekin? Üdv Wincso
Szia!
Define I2CCLOCK_STRETCH = 50 Define I2CREAD_DELAYUS = 300 cpu clock 20mhz úgy számoltam 20khz körül megy, 100khz alatt akkor nem megy? így van kiiratva Lcdcmdout LcdClear Lcdcmdout LcdLine1Home Lcdout "Datum:20", #evt, #ev, ".", #honapt, #honap, ".", #napt, #nap, Lcdcmdout LcdLine2Home Lcdout "Ido: ", #orat, #ora, ":", #perct, #perc, ":", #sect, #sec WaitMs 100 kipróbáltam a fenti változtatást, de a helyzet változatlan. Köszönettel Wincso
Mekkora sebességgel megy a kommunikáció (csak 100 kHz-en működik)? A kiolvasás eredménye BDC formátumú, az dekódólva van? A honapt.0 = 0 rész biztos, hogy nem jó, mert a hónap öt bites adat.
Az első sorban a feltöltésnél a I2CWrite sda, scl, 0xd0, 0x00, 0xff helyett inkább I2CWrite sda, scl, 0xd0, 0x00, 0x80 legyen. Az FF értékkel a másodperc regisztert feltöltöd úgy, hogy az egyes helyén 15 lesz, ami max. 9 lehet, a tizes helyén pedig 7, ami max. 5 lehet. Nem tudom, erre a túltöltésre mit lép az IC.
Sziasztok!
Véleményetekre és ötletekre lenne szükségem, mert elakadtam! Van egy pic 18F4620 vezérlő ds1307 rtc, 1602 1x16 lcd. A kijelző felső sora a "Datum:20657.646" feliratot ír ki a dátum helyett, a második sor"Ido: 657:645:" ír. A pic ben lévő program szerint az első sorba"Datum:2016.04.02" a második sorban "ido: 12:59:01" kéne hogy megjelenjen. Az rtc sqw kimenete 32768khz kimenetre van kalibrálva 10Kohm-mal felhúzva tápra és a pic tmr0 clock inputra kötve 128-as előosztoval, és megszakítás rutinban van az rtc datum és ido lekérdezése. a program indulásánál az rtc fel van töltve a fenti helyes adatokkal. Jó lenne ha valakinek lenne ötlete mert tippem sincs ....... kod: I2CWrite sda, scl, 0xd0, 0x00, 0xff I2CWrite sda, scl, 0xd0, 0x06, 0x16 I2CWrite sda, scl, 0xd0, 0x05, 0x04 I2CWrite sda, scl, 0xd0, 0x04, 0x02 I2CWrite sda, scl, 0xd0, 0x02, 0x12 I2CWrite sda, scl, 0xd0, 0x01, 0x59 I2CWrite sda, scl, 0xd0, 0x07, 0x93 I2CWrite sda, scl, 0xd0, 0x00, 0x00 ez írja az rtc-t WaitMs 5 data = 0 I2CRead sda, scl, 0xd1, 0x00, data sec.0 = data.0 sec.1 = data.1 sec.2 = data.2 sec.3 = data.3 sect.0 = data.4 sect.1 = data.5 sect.2 = data.6 sect.3 = 0 data = 0 WaitMs 5 I2CRead sda, scl, 0xd1, 0x01, data perc.0 = data.0 perc.1 = data.1 perc.2 = data.2 perc.3 = data.3 perct.0 = data.4 perct.1 = data.5 perct.2 = data.6 perct.3 = 0 data = 0 WaitMs 5 I2CRead sda, scl, 0xd1, 0x02, data ora.0 = data.0 ora.1 = data.1 ora.2 = data.2 ora.3 = data.3 orat.0 = data.4 orat.1 = data.5 orat.2 = 0 orat.3 = 0 data = 0 WaitMs 5 I2CRead sda, scl, 0xd1, 0x04, data nap.0 = data.0 nap.1 = data.1 nap.2 = data.2 nap.3 = data.3 napt.0 = data.4 napt.1 = data.5 napt.2 = 0 napt.3 = 0 data = 0 WaitMs 5 I2CRead sda, scl, 0xd1, 0x05, data honap.0 = data.0 honap.1 = data.1 honap.2 = data.2 honap.3 = data.3 honapt.0 = 0 honapt.1 = 0 honapt.2 = 0 honapt.3 = 0 data = 0 WaitMs 5 I2CRead sda, scl, 0xd1, 0x06, data ev.0 = data.0 ev.1 = data.1 ev.2 = data.2 ev.3 = data.3 evt.0 = data.4 evt.1 = data.5 evt.2 = data.6 evt.3 = data.7 evt.4 = 0 data = 0 WaitMs 5 ez olvassa az interrupt rutinban Köszönettel Wincso
Tudom, dolgoztam is rajta elég a program írásában volt egy kis probléma néha újra írta az időd és ez okozott egy kis csúszást javítottam + kondi is ment rá a rajz alapján , meg távolabb raktam a radiátortól aztán máris jobb lett a helyzet egész nap ment ,de nem idáig nem tévedett .
"de ha valahogy meglehetne oldani azt hogy pontosabb legyen az már pont elég lenne. " - Erre már ketten is írtunk legalább 3 megoldást. Most már neked kell dolgoznod.
jelenleg nincs de holnap szerzek kipróbálom esetleg még egy olyat is hogy az egészet be pakolom egy dobozba aztán egy termoszt csinálok,hogy kb állandó 30-40 fokon legyen és hátha javul a helyzet,
minden esetre köszönöm a segítséget.
Ha van kéznél 10-50 pF-os kondenzátor, köss a kvarcra kettőt a rajz szerint, próba-szerencse alapon.
A program feltöltésekor 36mp-t késett 10 perc elteltével már csak 25mp szóval siet de nagyon sokat ezt kéne valahogy minimalizálni.
ön magába az ebből származó késés nem volna gond csak ez másnapra változik vagy kevesebb vagy több lesz.Szóval itt nem a beállítással van a nagy baj mert ha folyamatosan ennyi az úgy jó ,tudom nincs tökéletes óra ami mindig pontos nem siet meg nem késik főleg egy 300ft-os darabból de ha valahogy meglehetne oldani azt hogy pontosabb legyen az már pont elég lenne.
Ez elég nagy baj. Tegyél bele gombkezelést úgy, hogy kézzel tudd megadni az időt. A másik megoldás, hogy normális, gombokat is használó komplett megoldást keresel.
A programot mikor feltöltöm van egy parancs amivel beállítom az időt.
"RTC.adjust(DateTime(__DATE__, __TIME__));" sorral.
Hogyan állítod be rajta a pontos időt? Nem két-három gombbal?
Egy órát akarok készíteni LCD kijelzőre,de észrevettem még egy problémát alapból mikor feltöltöm a programot már ott van egy kis eltérés a számítógép órájához képest nézem ,amit az előbb sajnos elírtam ,de csak most veszem észre nem siet hanem késik kb 36mp et lehetséges vonla, hogy amíg tölti fel a programot az akkori időt viszi de az RTC csak onnantól kezdve számolja mikor felment a program a kvarc frekijét megmértem 32,76kHz et mértem rajta ami még elgondolkodtat,hogy az asztalom szélén van ez az egész össze rakva de kb 10cm re van a radiátor esetleg ez is okozhatna problémát ?
Kalibrálni csak központi időről lehet, de ha az van (DCF, GPS stb.), akkor már nem sok értelme van az RTC-nek, hacsak nem a fogyasztás csökkentése. Esetleg DS3231 használata, az már eléggé pontos. Továbbra is fenntartom, hogy a kvarc cseréjével megoldódhat a gond, esetleg kiegészítő kondenzátorokkal, mint az szokás a nagyobb frekvenciájú kristályoknál, bár utóbbi kissebb eséllyel indul a versenyben.
Megnézed, melyik irányba, mennyit csúszik az idő, és korrigálsz. Egyszer egy nap, vagy többször, ahogy tetszik. Mondjuk hajnal 3kor nem valószínű, hogy feltűnik fél perc hiba. De a kristálycsere gyorsabb megoldás. Bármelyik karórában használatos jó, vagy amit találsz. Az ebay-es nyákokon szerintem 32000Hz-es kristály van, nem 32768Hz-es. Takarítsd le a gyantát meg minden koszt a kvarctól.
És azt hogyan tudnám megoldani ? arduinora programozok C ben.
A pontos időt sikerül beállítani de ha úgy hagyom tápról megy 1 nap után fél percet elmászik valamelyik irányba de inkább sietni szokott. A hozzászólás módosítva: Márc 7, 2016
A modul pontosságát a rákapcsolt kristály adja, azt cseréld ki. Nekem a HEStore-os "óra" kvarccal három havonta kb. 50 másodpercet sietett. Extra kondenzátort nem raktam rá.
|
Bejelentkezés
Hirdetés |




Nincs hűtő a közelben? 
