void WriteByte(unsigned char value)
{
  unsigned char Mask=1;
  int loop;

   for(loop=0;loop<8;loop++)
     {
       INP_GPIO(DS_PIN);
       OUT_GPIO(DS_PIN);
       GPIO_CLR= 1 <<DS_PIN;

       if((value & Mask)!=0)
        {
           DELAY1US
            INP_GPIO(DS_PIN);
           DelayMicrosecondsNoSleep(60);

        }
        else
        {
           DelayMicrosecondsNoSleep(60);
           INP_GPIO(DS_PIN);
           DelayMicrosecondsNoSleep(1);
        }
      Mask*=2;
      DelayMicrosecondsNoSleep(60);
    }


   usleep(100);
}
unsigned char ReadByte(void)
{

   unsigned char Mask=1;
   int loop;
   unsigned  char data=0;

  int loop2;


   for(loop=0;loop<8;loop++)
     {
       //  set output
       INP_GPIO(DS_PIN);
       OUT_GPIO(DS_PIN);
       //  PIN LOW
       GPIO_CLR= 1<<DS_PIN;
       DELAY1US
       //  set input
       INP_GPIO(DS_PIN);
       // Wait  2 us
       DelayMicrosecondsNoSleep(2);
       if(GPIO_READ(DS_PIN)!=0)
       data |= Mask;
       Mask*=2;
       DelayMicrosecondsNoSleep(60);
      }

    return data;
}
Exemple #3
0
void QEncoder::clockPulse()
{
    m_gpio.bitSet (m_bitClock);
    DelayMicrosecondsNoSleep(5);
    m_gpio.bitClear (m_bitClock);
    DelayMicrosecondsNoSleep(5);
}
unsigned char ReadBit(void)
{
   unsigned char rvalue=0;
   INP_GPIO(DS_PIN);
   OUT_GPIO(DS_PIN);
   // PIN LOW
   GPIO_CLR= 1 << DS_PIN;
   DELAY1US
   // set INPUT
   INP_GPIO(DS_PIN);
   DelayMicrosecondsNoSleep(2);
   if(GPIO_READ(DS_PIN)!=0)
    rvalue=1;
   DelayMicrosecondsNoSleep(60);
   return rvalue;
}
void WriteBit(unsigned char value)
{
   INP_GPIO(DS_PIN);
   OUT_GPIO(DS_PIN);
   GPIO_CLR=1 <<DS_PIN;
   if(value)
    {
      DELAY1US
      INP_GPIO(DS_PIN);
      DelayMicrosecondsNoSleep(60);
    }
   else
    {
      DelayMicrosecondsNoSleep(60);
      INP_GPIO(DS_PIN);
      DelayMicrosecondsNoSleep(1);
     }
   DelayMicrosecondsNoSleep(60);
}
int  DoReset(void)
{
 int loop;

   INP_GPIO(DS_PIN);


   DelayMicrosecondsNoSleep(10);

   INP_GPIO(DS_PIN);
   OUT_GPIO(DS_PIN);

   // pin low for 480 us
   GPIO_CLR=1<<DS_PIN;
   usleep(480);
   INP_GPIO(DS_PIN);
   DelayMicrosecondsNoSleep(60);
   if(GPIO_READ(DS_PIN)==0)
   {
     DelayMicrosecondsNoSleep(420);
     return 1;
   }
  return 0;
}
Exemple #7
0
/**
 *On button push send trig signal
 **/
void btnHandler(void)
{
	//Debounce
	long prevTime = btn_time.tv_nsec;
	clock_gettime(CLOCK_MONOTONIC, &btn_time);
	if ((btn_time.tv_nsec - prevTime) < DEBOUNCE) {
		return;
	}

	//Send trigger pulse
	printf("BTN pushed\n");
	digitalWrite(TRIG, LOW);
	digitalWrite(TRIG, HIGH);
	DelayMicrosecondsNoSleep(20);
	digitalWrite(TRIG, LOW);
}