|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Sob Apr 17, 2021 7:51 pm Naslov sporočila: Ura z DS1307 si ne zapomni po izklopu napajanja |
|
|
Hi
Imam modul DS1307, ko naložim program in odprem serijski vmesnik vse lepo deluje, prikazuje pravi čas in datum.
Ko pa izklopim napajanje in ga čez čas ponovno vklopim pa začne prikazovati čas od takrat naprej, ko sem naložil program, ne pa trenutni čas.
Menjal sem knjižnice in programe pa je vedno isto.
Mogoče kdo ve kje je problem?
LP,marko |
|
Nazaj na vrh |
|
|
Branez Moderator
Pridružen-a: Pon 14 Apr 2003 7:21 Prispevkov: 7770 Aktiv.: 34.88 Kraj: Koprivnica HR
|
Objavljeno: Sob Apr 17, 2021 8:02 pm Naslov sporočila: |
|
|
Ima ta tvoj modul DS1307 lastno napajanje, oziroma baterijski backup (CR2032)? _________________ The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!
Albert Einstein |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5333 Aktiv.: 24.73 Kraj: Domzale
|
Objavljeno: Sob Apr 17, 2021 8:30 pm Naslov sporočila: |
|
|
Pa je baterija dobra? Zmeri napetost ... _________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Tor Apr 20, 2021 9:20 pm Naslov sporočila: |
|
|
mucek je napisal/a: |
Pa je baterija dobra? Zmeri napetost ... |
Ni baterija.
Mi pa je nekako uspelo zamenjati čas. Je neki čuden postopek, nekako takole sem napravil, pa nisem čisto siguren, če je to to:
Zaprem serijski vmesnik
Vpišem nove podatke v program
Naložim program
izklopim napajanje
potem pa zopet vklopim napajanje
odprem serijski, da vidim če je čas spremenjen.
Pa ta postopek mi ne uspe vedno.
Mogoče obstajajo kakšna navodila glede zamenjave časa v čipu.
Mogoče se je že marsikdo ukvarjal s tem časom, da je ugotovil postopek na uri DS1307.
Kako se pa zamenja čas na DS3231 ?
Lp, |
|
Nazaj na vrh |
|
|
rplink3r Član
Pridružen-a: Tor 06 Feb 2007 20:02 Prispevkov: 480 Aktiv.: 2.29 Kraj: Levec
|
Objavljeno: Tor Apr 20, 2021 10:03 pm Naslov sporočila: |
|
|
Da nimaš slučajno tako narejeno, da Arduino compile time vsakič naloži na DS?
Nekateri primeri so imeli podobno, tisto vrstico sem ven brisal. _________________ "The statement below is false."
"The statement above is true." |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Tor Apr 27, 2021 11:55 am Naslov sporočila: |
|
|
rplink3r je napisal/a: |
Da nimaš slučajno tako narejeno, da Arduino compile time vsakič naloži na DS?
Nekateri primeri so imeli podobno, tisto vrstico sem ven brisal. |
Ja, seveda to vrstico moraš pokomentirati.
Mogoče pa obstajajo kakšna tovarniška navodila glede zamenjave časa na DS1307?
Verjetno se je že kdo spopadel s to zadevo.
lp, |
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 612 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Tor Apr 27, 2021 9:45 pm Naslov sporočila: |
|
|
Da ne ugibamo na pamet bi lahko pripel testni program
Gleda na tvoj komentar "Vpišem nove podatke v program" potem sumim da imas v programu nekje vrstico kjer v ds1307 "na roke" vpises cas ampak to se zgodi ob vsakem vklopu napajanja... |
|
Nazaj na vrh |
|
|
bostjang Član
Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3173 Aktiv.: 14.25 Kraj: Postojna
|
Objavljeno: Čet Apr 29, 2021 7:08 am Naslov sporočila: |
|
|
marko11 je napisal/a: |
Mogoče pa obstajajo kakšna tovarniška navodila glede zamenjave časa na DS1307?
Verjetno se je že kdo spopadel s to zadevo.
lp, |
Ja pogledaš v podatkovni list. To je osnova...
Najbrž je že kakšen proizvajalec kje uporabil ta čip, tako da ja. |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Čet Apr 29, 2021 12:02 pm Naslov sporočila: |
|
|
@bostjang, ne znam angleško, pa prosim, če poveš na kateri strani opisuje, pa bom potem z googlom prevedel. Hvala
lp, |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5333 Aktiv.: 24.73 Kraj: Domzale
|
Objavljeno: Čet Apr 29, 2021 3:16 pm Naslov sporočila: |
|
|
Brez angleščine bo pa težka ... _________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
bostjang Član
Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3173 Aktiv.: 14.25 Kraj: Postojna
|
Objavljeno: Pet Apr 30, 2021 12:52 pm Naslov sporočila: |
|
|
Moram se strinjati z muckom. To smo ugotavljali že v eni drugi temi.
Ampak, če si uspel prebrati čas, ga tudi napisati ne bi smel biti problem tako velik problem.
Sicer pa si za začetek prevedi naslove poglavij. |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.06
|
Objavljeno: Pet Apr 30, 2021 7:32 pm Naslov sporočila: |
|
|
Predvsem za začetek pripni sem svoj program, da vidimo, kaj sploh imaš v Setup() in kaj v loop() .
Omenjaš namreč, da pred nalaganjem "vpišeš nove podatke v program" - verjetno kompleten čas in datum.
Razlika ned pisanjem in branjem je en bit v naslovu (R/W) in malenkost drugačna struktura zanke - pri pisanju je SDA pin ves čas izhod in se nanj pošilja "1" oziroma "0", pri branju pa je pin SDA najprej izhod (da vpišeš naslov in ukaz), nato pa vhod, ki bere, kar je DS1397 poslal.
Tisti dve "for zanki" se da iz časovnega diagrama napisati tudi brez knjižnic (ki včasih vsebujejo kakšno "presenečenje"), samo z digitalWrite(...), maskiranjem spremenljivk in delayMicros(10). _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Pet Apr 30, 2021 10:02 pm Naslov sporočila: |
|
|
Tukaj pripenjam program za uro. Če hočem ročno vpisati drugi čas naj bi odkomentiral clock.setDateTim in naložil program. Ko to napravim se čas ne zamenja.
Sem nekje zgoraj opisal postopek kako mi je uspelo zamenjati čas. Samo tisto ni verjetno pravi postopek.
Lp
Koda: |
#include <DS1307.h>
DS1307 clock; //(0x68)
RTCDateTime dt;
void setup() {
//--------------------------------------------- DS1307
Serial.println("Inicializiraj DS1307");;
clock.begin();
if (!clock.isReady())
{
clock.setDateTime(__DATE__, __TIME__);
// Rocno vnasanje (YYYY, MM, DD, HH, mm, SS
//clock.setDateTime(2021, 4, 30, 19, 53, 00);
}
}
void loop() {
dt = clock.getDateTime();
Serial.print("Datum in ura: ");
Serial.print(dt.year); Serial.print("-");
Serial.print(dt.month); Serial.print("-");
Serial.print(dt.day); Serial.print(" ");
Serial.print(dt.hour); Serial.print(":");
Serial.print(dt.minute); Serial.print(":");
Serial.print(dt.second); Serial.println("");
}
|
|
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 612 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Pet Apr 30, 2021 10:26 pm Naslov sporočila: |
|
|
clock.setDateTime postavi za if stavkom, ampak po vsakem vklopu arduina ti bo potem nastavil na ta čas (to lahko rešiš z pomnenjem zastavice v eepromu ipd.)
Sumim da !clock.isReady() pomeni da čas ni nastavljen (privzete tovarniške vrednosti) in ti ga potem avtomatsko nastavi iz časa ko je bil program naložen na arduino. Ker si čas na ta način že nastavil tega if stavka ne izvede več (dokler ne odstraniš baterije). |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|