Código de Reloj a Tiempo Real

Embed Size (px)

Citation preview

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    1/39

    /*

    * main implementation: use this 'C' sample to create your own application

    *

    */

    #include "derivative.h" /* include peripheral declarations */

    //Ports

    #define setPortB(! (P$B%P&$ ) ( ++ !!

    #define clearPortB(! (P$B%P&$ ,) -( ++ !!

    #define setPort&(! (P$&%P&$ ) ( ++ !!

    #define clearPort&(! (P$&%P&$ ,) -( ++ !!

    //C& i0nals

    #define portC& P$C%P&$

    #define output%(! if(!1P$B%P&$ ) (22222222!34else1P$B%P&$ ,)

    (255555556!34

    #define output%6na7le(! if(!1P$B%P&$ ) (222222228!34else1P$B%P&$ ,)

    (25555555&!34

    #define hi0h% (P$B%P&$ ) (22222222!!

    #define low% (P$B%P&$ ,) (255555556!!

    #define hi0h%6na7le (P$B%P&$ ) (222222228!!

    #define low%6na7le (P$B%P&$ ,) (25555555&!!

    #define nns 2

    #define n&ata

    #define readPortB(! ((P$&%P& ,) ( ++ !! 99 !

    #define nButtonPressed 2

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    2/39

    #define nButton5ree

    #define 7tn

    //eds

    #define turn$neded clearPortB(;!

    #define turn$ffeded setPortB(;!

    #define turn$nreened clearPortB(

    #define turn$ffreened setPortB(

    #define turn$nBlueed clearPort&(!

    #define turn$ffBlueed setPort&(!

    #define turn$n=a0entaed (turn$neded ,, turn$nBlueed!

    #define turn$ff=a0entaed (turn$ffeded ,, turn$ffBlueed!//>P>>

    #define turn$n?ellowed (turn$neded ,, turn$nreened!

    #define turn$ff?ellowed (turn$ffeded ,, turn$ffreened!//>P>>

    #define turn$nCyaned (turn$nBlueed ,, turn$nreened!

    #define turn$ffCyaned (turn$ffBlueed ,, turn$ffreened!//>P>>

    #define turn$n@hiteed (turn$neded ,, turn$nreened ,, turn$nBlueed!

    #define turn$ff@hiteed (turn$ffeded ,, turn$ffreened ,, turn$nBlueed!//>P>>

    //Aime

    #define nsec 222//8D222222// 822222)sEEEEEFG=6$ P>> C$FA$> 6

    6$H

    #define n8;msec D22222

    #define n22msed 222222

    #define nmsec 222

    #define nI2usec 22

    /*C$=P>>F&

    $ J>>B6(GK &K G8K &8! C$F > L$> P$>=>&>*/

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    3/39

    #define L$>6FC6F&&$

    ((&8))&8C$CM6FCN22!,,(G8))G8C$CM6FCN22!,,(&))&C$CM6FCN22!,

    ,(G))GC$CM6FCN22!!

    #define L$>>P>>&$

    ((&8))&8C$CM>P>N22!,,(G8))G8C$CM>P>N22!,,(&))&C$CM>P>N22!,

    ,(G))GC$CM>P>N22!!

    #define L$>6FC6F&&$8

    ((&8))&8C$CM6FC8N22!,,(G8))G8C$CM6FC8N22!,,(&))&C$CM6FC8N2

    2!,,(G))GC$CM6FC8N22!!

    #define L$>>P>>&$8

    ((&8))&8C$CM>P>8N22!,,(G8))G8C$CM>P>8N22!,,(&))&C$CM>P>8N22

    !,,(G))GC$CM>P>8N22!!

    //&eclare Prototypes

    void cf0Ports(void!3

    void delay(lon0 ltime!3

    void initC&(void!3

    void sendCode(int CodeK int &ata!3

    void sendhour(int hourK int min!3

    void eloO(void!3

    void 6ncendidoPermanente(void!3

    void =ensaOeLora (void!3

    void =ensaOeuiere8hra(void!3

    void =enu&efina(void!3

    void =enu&efinaLora(void!3

    void =enu&efina8Lora(void!3

    void =ensaOe&efinirLora(void!3

    void =ensaOePro0ramarLora(void!3

    void =ensaOePro0ramarLora8(void!3

    void =ensaOePro0ramarLora(void!3

    void =ensaOePro0ramarLoraI(void!3

    void =ensaOe>larma(void!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    4/39

    void =ensaOe>larma8(void!3

    //Cursor BlinQ $ff nitialiRation

    const unsi0ned char nitialiReC&ST ) 12;K 2;K 2;K 22CK 2243

    unsi0ned char G ) 2 N 223

    unsi0ned char & ) 2 N 223

    unsi0ned char PGFA$ ) 2 N 223

    unsi0ned char G8 ) 2 N 223

    unsi0ned char &8 ) 2 N 223

    unsi0ned char GC$CM ) 23

    unsi0ned char &C$CM ) 23

    unsi0ned char G8C$CM ) 23

    unsi0ned char &8C$CM ) 23

    unsi0ned char GC$CM6FC ) 23

    unsi0ned char &C$CM6FC ) 23

    unsi0ned char G8C$CM6FC ) 23

    unsi0ned char &8C$CM6FC ) 23

    unsi0ned char GC$CM>P> ) 23

    unsi0ned char &C$CM>P> ) 23

    unsi0ned char G8C$CM>P> ) 23

    unsi0ned char &8C$CM>P> ) 23

    unsi0ned char GC$CM6FC8 ) 'E'3

    unsi0ned char &C$CM6FC8 ) 'E'3

    unsi0ned char G8C$CM6FC8 ) 'E'3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    5/39

    unsi0ned char &8C$CM6FC8 ) 'E'3

    unsi0ned char GC$CM>P>8 ) 'E'3

    unsi0ned char &C$CM>P>8 ) 'E'3

    unsi0ned char G8C$CM>P>8 ) 'E'3

    unsi0ned char &8C$CM>P>8 ) 'E'3

    int P>6)23

    int AGF$)23

    int PA$)23

    int 6FA>)23

    unsi0ned char Ciclo ) 3

    int main(void!

    1

    cf0Ports(!3//C$F5G>C$F &6 A$&$ $ PG6A$ &6 =C$

    initC&(!3//C$F5G>C$F FC> &6 > C&

    /*>P>>F&$ $ 6& */

    //EEEEEEEEEEEEE//

    turn$ffeded3

    turn$ffreened3

    turn$ffBlueed3

    //EEEEEEEEEEEEE//

    =ensaOe&efinirLora(!3//P=6 =6F>H6 : "&65F> > L$> "

    /*6CB6F&$ 6F P>FA>> > L$> P$ &65>GA "22:22" */

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    sendCode(nnsK 2C

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    6/39

    sendCode(n&ataK G!3//2

    sendCode(nnsK 2C;!3

    sendCode(n&ataK &!3//2

    sendCode(nnsK 2C!3

    sendCode(n&ataK PGFA$!3//:

    sendCode(nnsK 2CD!3

    sendCode(n&ataK G8!3//2

    sendCode(nnsK 2C!3

    sendCode(n&ataK &8!3//2

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    for(33!

    1

    eloO(!3//5GFC$F PFCP> &6 P$>=>K &6 >G 6 &6J>

    P=6$ > > 5GFC$F "&65F> L$>"

    4

    4

    void delay(lon0 ltime!

    1

    while (ltime 9 2!

    1

    ltimeEE3

    4

    4

    void initC&(void!

    1

    int i3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    7/39

    delay(nmsec!3

    /* end initialiRation instructions */

    /* oop for sendin0 each character from the array */

    for(i ) 23 i + 3 iNN!

    1

    sendCode(nnsK nitialiReC&SiT!3 /* end initialiRation instructions */

    4

    4

    void sendCode(int CodeK int &ata!

    1

    //>ssi0n a value to pin

    /*LFA: @hen is K then the C& receives a data

    when is 2K then the C& receives an instruction */

    // nitialiRe and 6na7le with 2

    low%3

    low%6na7le3

    //>ssi0n the value we want to send to the C&

    portC& ) &ata3

    //@e maQe the al0orithm to esta7lish if its an instruction we start with 2 on valueK otherwise if

    its a data command we start with as 3

    if (Code )) nns!

    1

    low%3

    hi0h%6na7le3

    delay(nI2usec!3

    low%6na7le3

    low%3

    4

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    8/39

    else if (Code )) n&ata!

    1

    hi0h%3

    hi0h%6na7le3

    delay(nI2usec!3

    low%6na7le3

    low%3

    4

    4

    void cf0Ports(void!

    1

    //A$&$ $ 6$H6 &6 $ PG6A$ 6UC6PA$ >

    =%CC ) =%CC%P$AB%=>M3

    =%CC ) =%CC%P$AC%=>M3

    =%CC ) =%CC%P$A&%=>M3

    =%CC ) =%CC%P$A6%=>M3

    =%CCD)(++!3//&>C

    /* et pins of P$AB as P$ */

    //Connected to C& ; PF

    P$AC%PC2 ) P$A%PC%=GU(!3

    P$AC%PC ) P$A%PC%=GU(!3

    P$AC%PC8 ) P$A%PC%=GU(!3

    P$AC%PC ) P$A%PC%=GU(!3

    P$AC%PCI ) P$A%PC%=GU(!3

    P$AC%PC ) P$A%PC%=GU(!3

    P$AC%PCD ) P$A%PC%=GU(!3

    P$AC%PC ) P$A%PC%=GU(!3

    //C&: and 6na7le

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    9/39

    P$AB%PC2 ) P$A%PC%=GU(!3 /**/

    P$AB%PC ) P$A%PC%=GU(!3

    P$AB%PC ) P$A%PC%=GU(!3

    P$AB%PC8 ) P$A%PC%=GU(!3

    //6& FA6>&$

    P$AB%PC; ) P$A%PC%=GU(!3//$H$

    P$AB%PC< ) P$A%PC%=GU(!3//J6&6

    P$A&%PC ) P$A%PC%=GU(!3//>VG

    P$A6%PC2 ) P$A%PC%=GU(!3//B$A$F &66CL>

    P$A6%PC ) P$A%PC%=GU(!3//B$A$F VG6&>

    P$A6%PC ) P$A%PC%=GU(!3//6FCP $ 6FC6F&&$ P6=>F6FA6

    P$A6%PC ) P$A%PC%=GU(!3//6FA6

    P$A6%PC2 ) P$A%PC%=GU(2!3//PF &6 &>C

    //Confi0ure all PortB as outputs

    P$B%P&& ) 2555555553

    /*PG6A$ B PF6 ? 8 C$=$ 6FA>&>*/

    P$B%P&& ,) -(++!3

    P$B%P&& ,) -(++8!3

    //Confi0ure all Port& as outputs

    P$C%P&& ) 2555555553

    //Confi0ure all Port& as outputs

    P$&%P&& ) 2555555553

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    10/39

    //B$A$F6 &6 =6FG C$=$ 6FA>&>

    P$6%P&& ,) -(++2!3//&6

    P$6%P&& ,) -(++!3//V

    P$6%P&& ,) -(++!3//6FC. P.

    P$6%P&& ,) -(++!3//6FA6

    /*C$F5G>C$F &6 &>C*/

    &>C2%C2)(++!3 /*>ctiva el &>C*/

    &>C2%C2)(++D!3 /*6l voltaOe de referencia es interno*/

    4

    void =enu&efina(void!//P=6 =6FG G6 6 =G6A> > FC>K 5GFC$F:

    P$>=> > L$> &6 FC$ &6 6$H//

    1

    int P>6)23

    while(P>6))2!

    1

    if((5P$6%P&,(++!!))2!//P6GFA> 6 B$A$F &6 6FA6 6

    P6$F>&$K 6FA> 6F GF 6FC6F&&$ P6=>F6FA6//

    1

    6ncendidoPermanente(!3

    4

    /**** P=6> 6CC$F CG6FA> $ =FGA$ &6 2E< =F "22:UU"****/

    //>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    if((5P$6%P&,(++!! W) 2!//P6GFA> 6 B$A$F &6 6FA6 6

    P6$F>&$K =6FA> 6A6 F$ 6A6 P6$F>&$ F$ 6 C>=B>> &6 =6FG//

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    11/39

    1

    if((5P$6%P&,(++2!! )) 2!//P6GFA> 6 B$A$F &6 &66CL>

    6 P6$F>&$K 6 G=>> > $ =FGA$ 6 &6C G(GF&>&6!//

    1

    /*CG6FA> P>> GF&>&6*/

    //EEEEEEEEEEEEEEEEEEEEEE//

    GC$CMNN3

    if(GC$CMW)2!

    1

    sendCode(nnsK 2C

    sendCode(n&ataK GC$CMN22!3

    delay(n8;msec!3

    4

    //EEEEEEEEEEEEEEEEEEEEEE//

    if(GC$CM ))(2!!/* > GF&>& 6 P>$ &6 V> J>>B6 &6 GF&>& > 2 ? G=> > &C$CM(&6C6F>! */

    1

    /*CG6FA> P>> &6C6F>*/

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    GC$CM ) 23

    sendCode(nnsK 2C

    sendCode(n&ataK GC$CMN22!3

    &C$CMNN3

    if(&C$CM W) (D!!//J6 P>> G6 F$ 6CB> 6F >

    P>FA>> &C$CM 6> > //

    1

    sendCode(nnsK 2C;!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    12/39

    sendCode(n&ataK &C$CMN22!3

    delay(n8;msec!3

    4

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    if(&C$CM )) (D!! /* > &6C6F> 6 P>$ &6 D

    6FC>V> G ? &C$CM > 2 */

    1

    GC$CM)23

    &C$CM)23

    sendCode(nnsK 2C;!3

    sendCode(n&ataK &C$CMN22!3

    sendCode(n&ataK GC$CMN22!3

    delay(n8;msec!3

    4

    4

    4

    //>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    /****6GF&> 6CC$F CG6FA> > L$> &6 2E8I "UU:22" ****/

    //BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    if((5P$6%P& , (++!! )) 2!//P6GFA> P$ 6 B$A$F VG6&>K

    6 G=> > G8C$CM(6GF&> GF&>&6!//

    1

    /*CG6FA> P>> GF&>&6 8 */

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    G8C$CMNN3

    /*P6GFA> P$ > L$> 6>$F > 8I*/

    if(&8C$CM )) (8!,,(G8C$CM))I!!

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    13/39

    1

    G8C$CM)23

    &8C$CM)23

    sendCode(nnsK 2C!3

    sendCode(n&ataK &8C$CMN22!3

    sendCode(n&ataK G8C$CMN22!3

    4

    if(G8C$CMW)2!

    1

    sendCode(nnsK 2CD!3

    sendCode(n&ataK G8C$CMN22!3

    delay(n8;msec!3

    4

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    if(G8C$CM ))(2!!/* > GF&>& 6 P>$ &6 < 6FC>V>

    G8 ? &8 C$CM > 2*/

    1

    /*CG6FA> P>> &6C6F> 8*/

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    G8C$CM ) 23

    sendCode(nnsK 2CD!3

    sendCode(n&ataK G8C$CMN22!3

    &8C$CMNN3

    sendCode(nnsK 2C!3

    sendCode(n&ataK &8C$CMN22!3

    delay(n8;msec!3

    //EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    4

    4

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    14/39

    //BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    4

    else// 6 B$A$F 6FA6 5G6 P6$F>&$ >GF> J6V 6>> > 6A6

    66 C$F $ &>A$ &6 > J>>B6 6F > G6 6 L>?> =$&5C>&$//

    1

    P>6)3//P>> > &6 @L6//

    initC&(!3

    /*G>&>F&$ $ &>A$ $BA6F&$ &6 =6FG 6F > J>>B6

    &6 FC$ &6 C$FA6$ &6 6$H*/

    G)GNGC$CM3

    &)&N&C$CM3

    G8)G8NG8C$CM3

    &8)&8N&8C$CM3

    GC$CM ) 23

    &C$CM ) 23

    G8C$CM ) 23

    &8C$CM ) 23

    delay(22222!3

    4

    4

    4

    void =enu&efinaLora(void!//6GF&$ =6FG &6PG6 &6 L>B6 P6$F>&$

    6FA6K 5GFC$F: P$>=> > L$> &6 6FC6F&&$ &6 J6FA>&$

    1

    =ensaOePro0ramarLora(!3//"P$>=6 > P=6> L$> &6 6FC"//

    //L$> P$ &65>GA 22:22//

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    15/39

    sendCode(nnsK 2C&!3

    sendCode(n&ataK GC$CMN22!3

    sendCode(nnsK 2CC!3

    sendCode(n&ataK &C$CMN22!3

    sendCode(nnsK 2CB!3

    sendCode(n&ataK PGFA$!3

    sendCode(nnsK 2C>!3

    sendCode(n&ataK G8C$CMN22!3

    sendCode(nnsK 2C

    sendCode(n&ataK &8C$CMN22!3

    //==$ =6FG G6 =6FG&65F> > 6UC6PC$F &6 66 &6

    6FA6K5GFC$F: C>PAG> > L$> &6 6FC6F&&$ &6 J6FA>&$//

    while(P>6W)I!

    1

    if((5P$6%P&,(++!! W) 2!//6FA6

    1

    if((5P$6%P&,(++2!! )) 2!//&66CL>

    1

    /*CG6FA> P>> GF&>&6*/

    GC$CMNN3

    if(GC$CMW)2!

    1

    sendCode(nnsK 2C&!3

    sendCode(n&ataK GC$CMN22!3

    delay(n8;msec!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    16/39

    4

    if(GC$CM ))(2!!/* > GF&>& 6 P>$ &6 < (2 N 2U2!*/

    1

    /*CG6FA> P>> &6C6F>*/

    //JG6A>G ) JG6A>G N 3

    GC$CM ) 23

    sendCode(nnsK 2C&!3

    sendCode(n&ataK GC$CMN22!3

    &C$CMNN3

    if(&C$CM W) (D!!

    1

    sendCode(nnsK 2CC!3

    sendCode(n&ataK &C$CMN22!3

    delay(n8;msec!3

    4

    if(&C$CM )) (D!! /* > &6C6F> 6 P>$ &6 D */

    1

    GC$CM)23

    &C$CM)23

    sendCode(nnsK 2CC!3

    sendCode(n&ataK &C$CMN22!3

    sendCode(n&ataK GC$CMN22!3

    delay(n8;msec!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    17/39

    4

    4

    4

    if((5P$6%P& , (++!! )) 2!//VG6&>

    1

    /*CG6FA> P>> GF&>&6 8*/

    G8C$CMNN3

    if(&8C$CM )) (8!,,(G8C$CM))I!!

    1

    G8C$CM)23

    &8C$CM)23

    sendCode(nnsK 2C

    sendCode(n&ataK &8C$CMN22!3

    sendCode(n&ataK G8C$CMN22!3

    4

    if(G8C$CMW)2!

    1

    sendCode(nnsK 2C>!3

    sendCode(n&ataK G8C$CMN22!3

    delay(n8;msec!3

    4

    if(G8C$CM ))(2!!/* > GF&>& 6 P>$ &6 < (2 N 2U2!*/

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    18/39

    1

    /*CG6FA> P>> &6C6F>*/

    //JG6A>G ) JG6A>G N 3

    G8C$CM ) 23

    sendCode(nnsK 2C>!3

    sendCode(n&ataK G8C$CMN22!3

    &8C$CMNN3

    sendCode(nnsK 2C

    sendCode(n&ataK &8C$CMN22!3

    delay(n8;msec!3

    4

    4

    4

    else//6GF 6> P>6 6 G>&>> $ &>A$ $BA6F&$ &6

    =6FGKP>6) ? 8 P>> G>&> L$> 6FC ? >P> ? ? I P>> 6FC8 ? >P>8//

    1

    P>6NN3

    //6CC$F &6 5 F$ $&6F>&> >C6F&6FA6=6FA6//

    if(P>6))!//6 G>&> > L$> &6 6FC6F&&$//

    1

    initC&(!3

    =ensaOePro0ramarLora8(!3//"P$>=> > L$> &6 >P> "//

    GC$CM6FC )GC$CM3

    &C$CM6FC )&C$CM 3

    G8C$CM6FC )G8C$CM 3

    &8C$CM6FC ) &8C$CM3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    19/39

    4

    if(P>6))!//6 G>&> > L$> &6 6FC8//

    1

    initC&(!3

    =ensaOePro0ramarLoraI(!3//"P$>=> > L$> &6 6FC8"//

    GC$CM6FC8 )GC$CM3

    &C$CM6FC8 )&C$CM 3

    G8C$CM6FC8 )G8C$CM 3

    &8C$CM6FC8 ) &8C$CM3

    4

    if(P>6))I!//6 G>&> > L$> &6 >P>8//

    1

    GC$CM>P>8 ) GC$CM3

    &C$CM>P>8 )&C$CM 3

    G8C$CM>P>8 )G8C$CM 3

    &8C$CM>P>8 )&8C$CM 3

    4

    if(P>6))8!//6 G>&> > L$> &6 >P>>&$//

    1

    initC&(!3

    delay(22222!3

    =ensaOeuiere8hra(!3//"&66> P$>=> GF> 8 L>K 6FA/ $

    6FCP/F$X"K &6FA$ &6 6A> 5GFC$F 6 6FCG6FA>F 5Y//

    delay(22222!3

    if(AGF$))!

    1

    =ensaOePro0ramarLora(!3//"P$>=6 > L$> &6 6FC8"//

    4

    GC$CM>P> ) GC$CM3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    20/39

    &C$CM>P> )&C$CM 3

    G8C$CM>P> )G8C$CM 3

    &8C$CM>P> )&8C$CM 3

    4

    /*6FC>V> J>>B6*/

    GC$CM ) 23

    &C$CM ) 23

    G8C$CM ) 23

    &8C$CM ) 23

    if(AGF$W)8!// F$ >C6PA$ P$>=> GF> 6GF&> L$> G6

    F$ 6CB> > L$> &65>GA "22:22"//

    1

    sendCode(nnsK 2C&!3

    sendCode(n&ataK GC$CMN22!3

    sendCode(nnsK 2CC!3

    sendCode(n&ataK &C$CMN22!3

    sendCode(nnsK 2CB!3

    sendCode(n&ataK PGFA$!3

    sendCode(nnsK 2C>!3

    sendCode(n&ataK G8C$CMN22!3

    sendCode(nnsK 2C

    sendCode(n&ataK &8C$CMN22!3

    4

    delay(22222!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    21/39

    4

    4

    4

    void eloO(void!//5GFC$F G6 CG6FA> &6 > 22:22 > > 8: 6CC$F 6

    C$=P>> > J>>B6 C$F > L$> P$>=>&> L>C6F&$ G6 6

    P6F&> $ 6 >P>G6 6 J6FA>&$//

    1

    =enu&efina(!3

    =enu&efinaLora(!3

    initC&(!3

    =ensaOeLora(!3//"L$>:"//

    sendCode(nnsK 2CI!3

    sendCode(n&ataK G!3

    sendCode(nnsK 2C!3

    sendCode(n&ataK &!3

    sendCode(nnsK 2C8!3

    sendCode(n&ataK PGFA$!3

    sendCode(nnsK 2C!3

    sendCode(n&ataK G8!3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK &8!3

    =ensaOe>larma(!3//=6F>H6 6F &$F&6 6 =G6A>F >

    L$> P$>=>&> =6FA> A>=B6F 6 =G6A> > L$>//

    /* 6 5GFC$F>=6FA$ &6 G6FA6 C$&$ 6 G> G6

    =6FG&65F> ? &65F>L$>K $$ G6 6F 6A6 6 HGFA>$F $ &$ 6

    6C$=6F&> 6FA6F&6 6$ 8 P=6$ C$&$ >FA6 &6 6A6*/

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    22/39

    while( Ciclo )) !

    1

    if((&8))(8N 22!!,,(G8))(IN22!!!//5 6F &$F&6 6

    6FC>V>F > J>>B6 6 6> > 8I L//

    1

    G ) 2 N 223

    & ) 2 N 223

    PGFA$ ) 2 N 223

    G8 ) 2 N 223

    &8 ) 2 N 223

    sendCode(nnsK 2CI!3

    sendCode(n&ataK G!3

    sendCode(nnsK 2C!3

    sendCode(n&ataK &!3

    sendCode(nnsK 2C8!3

    sendCode(n&ataK PGFA$!3

    sendCode(nnsK 2C!3

    sendCode(n&ataK G8!3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK &8!3

    4

    /*CG6FA> P>> GF&>&6*/

    sendCode(nnsK 2CI!3

    sendCode(n&ataK G!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    23/39

    /*C$=P6H$ 5 &$F&6 6 C$=P>>F $ J>$6

    G6 J> A6F6F&$ 6 6$H(GK & K G8 ? &8! C$FCG6&> C$F >GF> L$> &6

    6FC6F&&$ $ >P>>&$*/

    //>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE//

    if((L$>6FC6F&&$!(L$>>P>>&$!

    (L$>6FC6F&&$8!(L$>>P>>&$8!!//J6>6 $ =>C$ P>> =>

    F5$=>C$F $B6 > L$> &6 6FC6F&&$/>P>>&$//

    1

    if(L$>6FC6F&&$!

    1

    if(L$>>P>>&$!

    1

    6FA>)3

    turn$ffreened3

    turn$neded3//>P>> J6FA

    &>C2%&>A2L )(2299;!3//>P>>

    J6FA>&$

    //var)23

    4

    else

    1

    if(L$>6FC6F&&$8!

    1

    turn$ffreened3

    turn$neded3//>P>> J6FA

    &>C2%&>A2L

    )(2299;!3//>P>> J6FA>&$

    6FA>)3

    4

    else

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    24/39

    1

    turn$ffeded3

    turn$nreened3

    &>C2%&>A2L

    )(I2D299;!3//P6F&6 J6FA

    4

    4

    4

    if(6FA>W)!

    1

    if(L$>>P>>&$!

    1

    if(L$>6FC6F&&$!

    1

    turn$ffeded3

    turn$nreened3

    &>C2%&>A2L

    )(I2D299;!3//P6F&6 J6FA

    4

    else

    1

    turn$ffreened3

    turn$neded3//>P>> J6FA

    &>C2%&>A2L

    )(2299;!3//>P>> J6FA>&$

    PA$)3

    4

    4

    4

    if(L$>6FC6F&&$8!

    1

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    25/39

    if(L$>>P>>&$8!

    1

    6FA>)83

    turn$ffreened3

    turn$neded3//>P>> J6FA

    &>C2%&>A2L )(2299;!3//>P>>

    J6FA>&$

    4

    else

    1

    if((6FA>W)!,,(6FA>W)2!!

    1

    turn$ffeded3

    turn$nreened3//P6F&6

    &>C2%&>A2L

    )(I2D299;!3//P6F&6 J6FA

    4

    else

    1

    if((6FA>))2!(6FA>))!!

    1

    turn$ffeded3

    turn$nreened3//P6F&6

    &>C2%&>A2L

    )(I2D299;!3//P6F&6 J6FA

    4

    else

    1

    turn$ffreened3

    turn$neded3//>P>>

    J6FA

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    26/39

    &>C2%&>A2L

    )(2299;!3//>P>> J6FA>&$

    4

    4

    4

    4

    if(6FA>W)8!

    1

    if(L$>>P>>&$8!

    1

    if(L$>6FC6F&&$8!

    1

    turn$ffeded3

    turn$nreened3//P6F&6

    &>C2%&>A2L

    )(I2D299;!3//P6F&6 J6FA

    4

    else

    1

    turn$ffreened3

    turn$neded3//>P>> J6FA

    &>C2%&>A2L

    )(2299;!3//>P>> J6FA>&$

    4

    4

    4

    if(PA$))!

    1

    turn$ffreened3

    turn$neded3//>P>> J6FA

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    27/39

    &>C2%&>A2L )(2299;!3//>P>>

    J6FA>&$

    4

    4//if ppal

    //>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE/

    /

    PA$)23

    6FA>)23

    delay(nsec!3

    G ) G N 3

    if(G ))(2 N 22!!/* > GF&>& 6 P>$ &6 < (2 N

    2U2!*/

    1

    /*CG6FA> P>> &6C6F>*/

    G ) 223

    sendCode(nnsK 2CI!3

    sendCode(n&ataK G!3

    & ) & N 3

    if(& W) (D N 22!!

    1

    sendCode(nnsK 2C!3

    sendCode(n&ataK &!3

    4

    if(& )) (D N 22!! /* > &6C6F> 6 P>$ &6 D

    */

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    28/39

    1

    /*CG6FA> P>> G8*/

    & ) 223

    sendCode(nnsK 2C!3

    sendCode(n&ataK &!3

    G8 ) G8N3

    if(G8 W) (2 N 22!!

    1

    sendCode(nnsK 2C!3

    sendCode(n&ataK G8!3

    if((&8))(8N 22!!,,(G8))(IN22!!!

    1

    G ) 2 N 223

    & ) 2 N 223

    PGFA$ ) 2 N 223

    G8 ) 2 N 223

    &8 ) 2 N 223

    sendCode(nnsK 2CI!3

    sendCode(n&ataK G!3

    sendCode(nnsK 2C!3

    sendCode(n&ataK &!3

    sendCode(nnsK 2C8!3

    sendCode(n&ataK PGFA$!3

    sendCode(nnsK 2C!3

    sendCode(n&ataK G8!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    29/39

    sendCode(nnsK 2C2!3

    sendCode(n&ataK &8!3

    4

    4

    if(G8 )) (2 N 22!!

    1

    /*CG6FA> P>> &8*/

    G8 ) 223

    sendCode(nnsK 2C!3

    sendCode(n&ataK G8!3

    &8 ) &8 N 3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK &8!3

    4

    4

    4 //f 8I

    4//@L6

    4

    /*EEEEEEEEEE5GFC$F6 P>> =$A> =6F>H6EEEEEEEEEEE*/

    void =ensaOe&efinirLora(void!

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    30/39

    1

    sendCode(nnsK 2;2!3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK '5' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK 'L' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ':' !3

    4

    void =ensaOePro0ramarLora(void!

    1

    initC&(!3

    sendCode(nnsK 2;2!3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    31/39

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK '=' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK 'L' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK 'C' !3

    sendCode(n&ataK ':' !3

    4

    void =ensaOePro0ramarLora8(void!

    1

    initC&(!3

    sendCode(nnsK 2;2!3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    32/39

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK '=' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK 'L' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ':' !3

    4

    void =ensaOePro0ramarLora(void!

    1

    initC&(!3

    sendCode(nnsK 2;2!3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    33/39

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK '=' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK 'L' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK 'C' !3

    sendCode(n&ataK '8' !3

    sendCode(n&ataK ':' !3

    4

    void =ensaOePro0ramarLoraI(void!

    1

    initC&(!3

    sendCode(nnsK 2;2!3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '$' !3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    34/39

    sendCode(n&ataK '' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK '=' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK 'L' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK '8' !3

    sendCode(n&ataK ':' !3

    4

    void =ensaOeLora(void!

    1

    //initC&(!3

    sendCode(nnsK 2;2!3

    sendCode(n&ataK 'L' !3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    35/39

    sendCode(n&ataK '$' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ':' !3

    4

    void =ensaOeuiere8hra(void!

    1

    initC&(!3

    sendCode(nnsK 2;2!3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK 'G' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '8' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK 'L' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK 'X' !3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK '6' !3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    36/39

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK 'A' !3

    sendCode(n&ataK '/' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '$' !3

    sendCode(n&ataK ' ' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK 'C' !3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '/' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK '$' !3

    /*6CC$F &$F&6 6 P6GFA> 6 &66> P$>=> GF> 6GF&>

    L$>*/

    while(AGF$))2!

    1

    if((5P$6%P&,(++!! )) 2!//6FA6/K 6 J$J6> >

    6FA> 6F 6 @L6 &6 &65F>L$> $A> &$ J6C6 P>> C>PAG> >

    L$>//

    1

    AGF$)3

    4

    if((5P$6%P&,(++!! )) 2!//6FCP/F$K 6 >&> &6 @L6

    &6 &65F>L$> P>> P>> > 6=P6V> > C$FA> C$F 6 6$H//

    1

    P>6)I3

    AGF$)83

    initC&(!3

    4

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    37/39

    4

    4

    void =ensaOe>larma(void!

    1

    sendCode(nnsK 2;

    sendCode(n&ataK '' !3

    sendCode(n&ataK '.' !3

    sendCode(n&ataK &8C$CM6FCN22!3

    sendCode(n&ataK G8C$CM6FCN22!3

    sendCode(n&ataK 'E' !3

    sendCode(n&ataK &8C$CM>P>N22!3

    sendCode(n&ataK G8C$CM>P>N22!3

    sendCode(nnsK 2C

    if(&8C$CM6FC8))'E'!

    1

    sendCode(n&ataK '8' !3

    sendCode(n&ataK '.' !3

    sendCode(n&ataK &8C$CM6FC8!3

    sendCode(n&ataK G8C$CM6FC8!3

    sendCode(n&ataK 'E' !3

    sendCode(n&ataK &8C$CM>P>8!3

    sendCode(n&ataK G8C$CM>P>8!3

    4

    else

    1

    sendCode(n&ataK '8' !3

    sendCode(n&ataK '.' !3

    sendCode(n&ataK &8C$CM6FC8N22!3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    38/39

    sendCode(n&ataK G8C$CM6FC8N22!3

    sendCode(n&ataK 'E' !3

    sendCode(n&ataK &8C$CM>P>8N22!3

    sendCode(n&ataK G8C$CM>P>8N22!3

    4

    4

    void 6ncendidoPermanente(void!

    1

    initC&(!3

    sendCode(nnsK 2;2!3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK 'C' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '&' !3

    sendCode(n&ataK '$' !3

    sendCode(nnsK 2C2!3

    sendCode(n&ataK 'P' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK '' !3

    sendCode(n&ataK '=' !3

    sendCode(n&ataK '>' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK '6' !3

    sendCode(n&ataK 'F' !3

    sendCode(n&ataK 'A' !3

    sendCode(n&ataK '6' !3

  • 7/23/2019 Cdigo de Reloj a Tiempo Real

    39/39

    for(33!

    1

    turn$ffeded3

    turn$nreened3//P6F&6

    &>C2%&>A2L )(I2D299;!3//P6F&6 J6FA

    4

    4