swRTC

leo72:
Non ho parole..... dalle modifiche ad una lib a parlare delle lib..ertine! :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

ROTFL, ma dai, non te la prendere, ti stiamo solo facendo da squadra per tirarti la volata dei 10kpost :wink: hai presente i gregari nelle squadre di bici, quelli che pedalano come pazzi fino a scoppiarsi i polpacci, per stancare gli avversari e creare dietro di loro un'area protetta dal vento d'impatto, nel quale si infila il ciclista capitano, che può in tal modo correre alla stessa velocità ma stancandosi molto meno? Ecco, siamo noi, vai Gimondi! :smiley:

Il mio idolo era Marco, pace all'anima sua. Grande. Peccato si fosse circondato di gente sbagliata.

Allegato al 1° post di questa discussione c'è la nuova versione 1.0.5 della libreria.
Ho inserito la funzione getWeekDay che restituisce l'attuale giorno della settimana in formato numerico, con 0->domenica...6->sabato.
Ho inoltre aggiunto (ma questo già dalla versione 1.0.4 della lib che però non avevo messo nel 1° post) il supporto all'Attiny4313.
Ho infine rivisto gli sketch di esempio: in swRTCtest ho messo molti dei metodi della libreria mentre ho inserito un nuovo sketch denominato swRTCprintTime. Con esso vediamo se mettiamo a tacere le voglie di orari stampati nel formato OO:MM(:SS) di Testato :stuck_out_tongue:

Perché ho messo questa funzione in uno sketch e non nella libreria? Per il semplice motivo che la libreria è nata per gestire l'orario internamente, quindi appesantire con qualche centinaio di byte (tanti erano i byte che venivano aggiunti alla lib) il codice solo per stampare sulla seriale l'orario non mi sembrava logico. Di tutti quelli che useranno la swRTC (pochi :sweat_smile:) ci sarà l'1% che si sollazzerà con essa stampando sul terminale l'orario. Quindi ho deciso di mettere la funzione in uno sketch, in modo che chi voglia usarla, sa dove trovarla. Così ho deciso, l'udienza è tolta! ]:smiley:

Bhe io la uso da diverso tempo e mi piace, poi se c'e' 08:08:08 o 8:8:8 mi importa poco tendente a zero. Quando scrivo su SD l'ora e l'evento basta e avanza. Se qualcuno vuole un extralusso ci mette un Rolex e si leva il pensiero ]:slight_smile:

ciao

ottimo Leo,
va benissimo anche cosi', credo che questa sia la versione definitiva, almeno fino ad altre mie richieste :stuck_out_tongue_closed_eyes:

Testo e riporto :slight_smile:

:sweat_smile: domanda idiota.... da http://www.leonardomiliani.com/?p=411 sono riuscito a scaricare solo la release 1.0.1 ...
la 1.0.5. ?

Grazie Leo72!

lupastro81:
:sweat_smile: domanda idiota.... da http://www.leonardomiliani.com/?p=411 sono riuscito a scaricare solo la release 1.0.1 ...
la 1.0.5. ?

Nel primo post --> swRTC - Megatopic - Arduino Forum

ecco... lo sapevo che era una domanda idiota... domani vado dall'oculista.. :stuck_out_tongue_closed_eyes:

grazie mille ciao!

lupastro81:
:sweat_smile: domanda idiota.... da http://www.leonardomiliani.com/?p=411 sono riuscito a scaricare solo la release 1.0.1 ...
la 1.0.5. ?

Grazie Leo72!

Uh oh... mi sono scordato di aggiornare la versione sul mio sito :sweat_smile: :sweat_smile:

ho visto che in firma hai messo un unico riferimento, il tuo sito.
pero' sul sito non hai aggiornato i vari lavori, ad esempio questa libreria e' ancora alla 1.0.1 con i problemi che ne derivano (non mi funzionava getWeekday :stuck_out_tongue_closed_eyes:)
bye :slight_smile:

Ieri ho aggiornato un po' di cose sul mio sito, ma degli ultimi aggiornamenti della swRTC me ne ero proprio dimenticato. Grazie della segnalazione :wink:

non conviene se linki direttamente a github per il download, e anche i link che metti quì li fai puntare alle varie versioni della libreria? in questo modo hai sia arduino che il tuo sito puntano ad una variabile unica :slight_smile:

Sì, quando tutti i miei lavori li ho trasferiti su GitHub linkerò direttamente lì. Per ora sto sistemando il mio sito e pian pianino cerco di mettere tutti i contenuti in inglese. Fatto questo, passerò a sistemare i download.

maledette basi :drooling_face:

leo mi dici perche' non funziona il tuo sketch modificandolo in questo modo ?
thanks

#include <swRTC.h>
swRTC rtc; //create a new istance of the lib
const byte WITHOUT_SECONDS = 0;
const byte WITH_SECONDS = 1;

void setup() {
	rtc.stopRTC(); //stop the RTC
	rtc.setTime(12,0,0); //set the time here
	rtc.setDate(4,6,2012); //set the date here
	rtc.startRTC(); //start the RTC
	Serial.begin(19200); //choose the serial speed here
	delay(2000); //delay to let the user opens the serial monitor
}

void loop() {
   
     Stampa_Ora();
    delay(1000);
}



void Stampa_Ora() 
 
 { 
   printTime_SER(WITH_SECONDS);
   
void printTime_SER(byte withSeconds) {
    sendNumber_SER(rtc.getHours());
    Serial.print(":");
    sendNumber_SER(rtc.getMinutes());
    if (withSeconds) {
        Serial.print(":");
        sendNumber_SER(rtc.getSeconds());
    }
    Serial.println("");
}


void sendNumber_SER(byte number) {
    byte temp;
    if (number>9) {
        temp=int(number/10);
        Serial.print(char(temp+48));
        number-=(temp*10);
    } else {
        Serial.print("0");
    }
    Serial.print(char(number+48));
}
}

Premetto che non ho testato (uh oh.... :stuck_out_tongue_closed_eyes:) lo sketch perché i miei Arduini sono al piano di sopra ed io sono sdraiato a bivaccare sul letto al piano di sotto... XD XD
Però il tuo sketch a me non compila neanche, perché ti sei messo a "giocare" con le parentesi graffe :wink:

#include <swRTC.h>
swRTC rtc; //create a new istance of the lib
const byte WITHOUT_SECONDS = 0;
const byte WITH_SECONDS = 1;

void setup() {
	rtc.stopRTC(); //stop the RTC
	rtc.setTime(12,0,0); //set the time here
	rtc.setDate(4,6,2012); //set the date here
	rtc.startRTC(); //start the RTC
	Serial.begin(19200); //choose the serial speed here
	delay(2000); //delay to let the user opens the serial monitor
}

void loop() {
  
    Stampa_Ora();
    delay(1000);
}



void Stampa_Ora()  { 
   printTime_SER(WITH_SECONDS);
}

   
void printTime_SER(byte withSeconds) {
    sendNumber_SER(rtc.getHours());
    Serial.print(":");
    sendNumber_SER(rtc.getMinutes());
    if (withSeconds) {
        Serial.print(":");
        sendNumber_SER(rtc.getSeconds());
    }
    Serial.println("");
}


void sendNumber_SER(byte number) {
    byte temp;
    if (number>9) {
        temp=int(number/10);
        Serial.print(char(temp+48));
        number-=(temp*10);
    } else {
        Serial.print("0");
    }
    Serial.print(char(number+48));
}

Era questo il problema?

maledette parentesi graffe, e pensare che era l'unica cosa sulla quale avrei scommesso che era corretta :stuck_out_tongue_closed_eyes:

grazie :slight_smile:

Testato:
maledette parentesi graffe, e pensare che era l'unica cosa sulla quale avrei scommesso che era corretta :stuck_out_tongue_closed_eyes:

grazie :slight_smile:

prova notepad++, ha un ottimo sistema per aiutarti a scrivewre il codice. Ti evidenzia la parentesi di chiusura, puoi nascondere blocchi di codice etc..

lo conosco, ma ti assicuro che il metodo di scrittura e' l'ultimo dei miei problemi,
io non e' che avevo sbagliata a metterla, credevo proprio che era quella la posizione giusta :stuck_out_tongue_closed_eyes:

Testato:
lo conosco, ma ti assicuro che il metodo di scrittura e' l'ultimo dei miei problemi,
io non e' che avevo sbagliata a metterla, credevo proprio che era quella la posizione giusta :stuck_out_tongue_closed_eyes:

ahhahahah ti piaceva li, ma tu pensa che dopo molto anni che programmo le parentesi graffe ancora le copio e le incollo dalle altre parti,odio dover fare ALT + etc punto 1 perchè mi dimentico sempre come si fa punto 2 perchè sul mio pc attivare il tastierino numerico è un incubo :stuck_out_tongue_closed_eyes:

Su Linux si usa la combinazione AltGr+[ oppure ], è molto comodo. Così non devi impazzire con il tastierino numerico assente dei portatili.
Ma non si può su Windows impostare delle scorciatoie da tastiera per assegnare ad una combinazione di tasti un determinato carattere?