void Gpio_write_bit(int data);
int Gpio_read_bit();
int system_reset();
int Gpio_read_byte();
void Gpio_write_byte(int data);
enum DELAY { A = 5, B = 70, C = 70, D = 5, E = 10, F = 53, G = 0, H = 480, I = 70, J = 410 };
enum COMMANDS { READ_ROM = 0x33, CONVERT = 0x44, READ_SCRATCHPAD = 0xBE,
SKIP_ROM = 0xCC, WRITE_SCRATCHPAD = 0x4E, COPY_SCRATCHPAD = 0x48, MATCH_ROM = 0x55
};
void main()
{
int reset=0,i;
int ROM_Code[64]={0};
InitSysCtrl();
DINT;
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
// This example function is found in the DSP2833x_PieCtrl.c file.
// EnableInterrupts();
Gpio_init();
reset=system_reset();
//data_value= Gpio_read_bit();
if(reset==0){while(1);}
else{Gpio_write_byte(READ_ROM );
for ( i = 0; i < 64; ++i) {
ROM_Code[i] = Gpio_read_byte();
}
}
while(1);
}
{
int data=0;
int flag=0;
//DELAY_US(480);
DELAY_US(H);
GpioDataRegs.GPACLEAR.bit.GPIO18=0;GpioDataRegs.GPASET.bit.GPIO18=1;
//DELAY_US(70);
DELAY_US(I);
DELAY_US(J);
if(data==0){flag=1;}
else{flag=0;}
//DELAY_US(1000);
return flag;
}
{
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; // Enable pullup on GPIO18
GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0; // Enable pullup on GPIO18
GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 0;// select GPIO from mux
GpioCtrlRegs.GPADIR.bit.GPIO19 = 0;// select direction as in
EDIS;
}
{
if(data==0){
GpioDataRegs.GPACLEAR.bit.GPIO18=1;GpioDataRegs.GPASET.bit.GPIO18=0;
DELAY_US(15);
DELAY_US(45);
// DELAY_US(C);
// DELAY_US(D);
}
else {
GpioDataRegs.GPASET.bit.GPIO18=0;GpioDataRegs.GPACLEAR.bit.GPIO18=1;
DELAY_US(10);
//DELAY_US(A);
GpioDataRegs.GPASET.bit.GPIO18=1;GpioDataRegs.GPACLEAR.bit.GPIO18=0;
DELAY_US(5);
DELAY_US(45);
//DELAY_US(B);
}
//DELAY_US(60);
// DELAY_US(1);
return;
}
{
int temp_data;
GpioDataRegs.GPASET.bit.GPIO18=0;GpioDataRegs.GPACLEAR.bit.GPIO18=1;
DELAY_US(1);
// DELAY_US(A);
GpioDataRegs.GPASET.bit.GPIO18=1;GpioDataRegs.GPACLEAR.bit.GPIO18=0;
//DELAY_US(E);
DELAY_US(10);
temp_data=GpioDataRegs.GPADAT.bit.GPIO19;
// DELAY_US(F);
DELAY_US(4);
DELAY_US(45);
//DELAY_US(1);
return temp_data;
{
int i,buff;
for(i=0;i<8;i++)
{
buff=data&0x01;
Gpio_write_bit(buff);
data=data>>1;
}
}
{
int i,buff,temp_value=0;
for(i=0;i<8;i++)
{
buff=Gpio_read_bit();
temp_value|=(buff<<i);
}
}