Letar efter demo kod för 8-bit mode LCD

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46987
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av TomasL »

Vad använder du för något batteri till klockan?
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av Jonaz »

Ja det är arduinon som förståeligt tappar tiden och det vill jag ändra på.
RTC'n i sig själv funkar, den kommer ihåg tiden, inga problem med den.


exempel: Här sätts ju regler för hämtningar/visning

Kod: Markera allt

void timePrint(time_t);
void timePrint(tod_t _tod);
void timePrint(byte _hour, byte _minute, byte _second, byte _month, byte _day, byte _year);
void time_Setup();
tod_t timeOfDay(time_t time);
tod_t inputTimeOfDay();
tod_t inputTimeOfDay(tod_t);
Skulle man kunna ändra det så här så att alla tiderna kommer från RTC'n?

Kod: Markera allt

void getDateDs1307(time_t);
void getDateDs1307(tod_t _tod);
void getDateDs1307(byte _hour, byte _minute, byte _second, byte _month, byte _day, byte _year);
void time_Setup();
tod_t timeOfDay(time_t time);
tod_t inputTimeOfDay();
tod_t inputTimeOfDay(tod_t);
Ja, jag har försökt att ändra enl ovanstående, men när man skall ställa klockan i själva slutprogrammet så är man tillbaka till den gamla koden, och den tappar tiden. Det är ju uppenbart att det är fel kodat men jag vet inte riktigt hur jag skall lösa det.
Hänger ni med?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av sodjan »

Nej, jag hänger inte riktigt med... :-)
Du måste ju ha både skriv och läs rutiner.
Du skriver till RTC's när du vill "ställa" klockan.
Du läser från RTC'n då du vill "kolla tiden".
RTC'n vet ju inte vad klockan är från början...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46987
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av TomasL »

Är det inte så att man skriver till RTC'n för att kunna läsa också. dvs skriver ett kommando, så RTC-innehållet kopieras till holding-registren, som sedan läses.
Många RTCer är konstruerade på det sättet.
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av Jonaz »

>>Du måste ju ha både skriv och läs rutiner.
>>Du skriver till RTC's när du vill "ställa" klockan.
Precis, och här försöker jag klura ut hur jag kan "konvertera" den gamla koden till att läsa från RTC'n.
Det finns nämligen en fil till som också använder sig av "original klockan" för att hålla koll på lite olika tider.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av sodjan »

OK.
Nej, det är inte lätt att hänga med när man inte har hela bilden.
Jag vet t.ex inte vad timePrint() gör, det låter
som någon utskrift eller liknande. *Vet* du att den kan
ersättas med getDateDs1307() (var nu den kommer från) ?

Men vad är problemet? Kan du inte läsa från RTC'n ?
Jag tror att du tills vidare ska strunta i din gamla kod
och fokusera på att få fungerande rutiner till/från RTC'n.
Om det nu är det som är problemet... :-)
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av Jonaz »

void timePrint(time_t time)
Ovanstående skriver tiden från original koden.

Kan man på något sätt göra så att timePrint hämtar tiden från getDateDS1307?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av sodjan »

"Skriver" vartdå ??

Du får väl först anropa getDateDS1307() för att hämta tiden och
sedan timePrint() för att "skriva" tiden (vad nu "skriva" betyder).
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av Jonaz »

>skriver vart då?
timePrint() Under den raden kommer Lcd.print funktionerna.
>Du får väl först...
Precis, det är nog där jag inte riktigt förstår hur timePrint() skall läsa från getDateDS1307()
Kan man definiera det innan?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av sodjan »

Alltså, om *både* timePrint() och getDateDS1307() har till uppgift att
"hämta tiden" så bör väl den senare *ersätta* den förra. De ska inte
anropa varandra.
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av Jonaz »

Korrekt.

Fast just i detta fall vill jag att timePrint() skall hämta från getDateDS1307()

För annars måste det skrivas om en hel del kod i resten av programmet, men det kanske inte funkar att göra så?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av sodjan »

Om timePrint() är din egen rutin så kan du ju skriva om den hur som helst.
Det blir ett slags "skal" kring getDateDS1307().

Och absolut, det är i sig inget ovanligt alls. Man, så att säga, döljer
var tiden faktiskt kommer ifrån från själva applikationen.

Men, som sagt, det förutsätter ju att du har tillgång till källkoden
till timePrint() så att du kan ändra den.

Om timePrint() inte är din egen rutin (och du inte har tillgång till
källkoden) så brukar det gå att ersätta den befintliga funktionen med
en egen. Jag vet inte hur det går till (eller om det är möjligt) men i
mer traditionella miljöer så brukar det styras av ordningen som man
listar de libbar som det hela ska länkas först. Man ser till att den egna
timePrint() kommer före standardrutinen så kommer den att ta den.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46987
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av TomasL »

Om du vill definiera om timePrint till något annat så använder du något liknande detta

#define timePrint getDateDS1307

I början av c-filen där timePrint används, altrnativt i en .h-fil som inkluderas av alla filer som använder sig av timePrint.

Dock, det förutsätter att datatyper i argumenten är lika

I praktiken blir det så att så fort pre-processorn upptäcker teckensträngen timePrint ersätts den med getDateDS1307.

Exakt syntax beror naturligtvis på ditt utvecklingsssystem.

Vore det inte bättre att du skrev all kod själv, istället för obskyra libbar och 3djepartskod.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av sodjan »

> Vore det inte bättre att du skrev all kod själv,...

Nu så går ju det tvärt emot en av grundidérna med Ardunio. :-)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46987
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Letar efter demo kod för 8-bit mode LCD

Inlägg av TomasL »

Då kanske man inte skulle använda arduino, utan något vettigt istället, eller? :twisted:
Skriv svar