3wireroutines.c

This 3 Wire example application demonstrates the use of a DS1302 Real Time Clock (by Don Cramer).




#include <system.h>

#include "3wireroutines.h"



void init_3w()

{



    clear_bit(data_tris, data_pin);

    clear_bit(rst_tris, rst_pin);

    clear_bit(clk_tris, clk_pin);



    clear_bit(data_port, data_pin);

    clear_bit(rst_port, rst_pin);

    clear_bit(clk_port, clk_pin);



}



void reset_3w()

{



    clear_bit(clk_port, clk_pin);

    clear_bit(rst_port, rst_pin);

    set_bit(rst_port, rst_pin);



}



/* ----------------------------------------------------------------------- */



void wbyte_3w(unsigned char W_Byte)

{

    unsigned char i;



    clear_bit(data_tris, data_pin);



    for(i = 0; i < 8; ++i)

    {

        clear_bit(data_port, data_pin);



        if(W_Byte & 0x01)

        {

            set_bit(data_port, data_pin);

        }



        clear_bit(clk_port, clk_pin);

        set_bit(clk_port, clk_pin);

        W_Byte = (W_Byte>>1);

      }

}

/* ----------------------------------------------------------------------- */

unsigned char rbyte_3w()

{

    unsigned char i,R_Byte;



    set_bit(data_tris, data_pin);



    R_Byte = 0x00;

    set_bit(data_port, data_pin);



    for(i=0; i<8; ++i)

    {



        set_bit(clk_port, clk_pin);

        clear_bit(clk_port, clk_pin);



        R_Byte >>= 1;

        R_Byte = R_Byte | ((data_port >> data_pin) << 7);



    }

    return R_Byte;

}






http://www.sourceboost.com/home.html

Copyright © 2002-2006 SourceBoost Technologies