コード例 #1
0
ファイル: TLC59116.c プロジェクト: QuantumFractal/LedCube
void TLC59116_WriteReg(byte addr, byte reg, byte val) {
    I2C1_Start();
        I2C1_Wr(0xC0 | (addr << 1) | WRITE);
        I2C1_Wr(AUTOINC_ALL | reg);
        I2C1_Wr(val);
    I2C1_Stop();
}
コード例 #2
0
ファイル: TLC59116.c プロジェクト: QuantumFractal/LedCube
void TLC59116_ResetAll() {
    I2C1_Start();
        I2C1_Wr(0xD6);
        I2C1_Wr(0xA5);
        I2C1_Wr(0x5A);
    I2C1_Stop();
}
コード例 #3
0
//https://electrosome.com/wp-content/uploads/2012/05/data-write.png
void write_ds1307(unsigned short address, unsigned short w_data)
{
  I2C1_Start();
  I2C1_Wr(0xD0);
  I2C1_Wr(address);
  I2C1_Wr(w_data);
  I2C1_Stop();
}
コード例 #4
0
void escreve(unsigned short address, unsigned short dado)
{
 I2C1_Start();
 I2C1_Wr(0xA0); //endereco disp + escrever
 I2C1_Wr(address);
 I2C1_Wr(dado);
 I2C1_Stop();
 Delay_ms(10);
}
コード例 #5
0
ファイル: initialize.c プロジェクト: XenoMehdi/Horloge_7seg
void setup_ds1621()
{
    I2C1_Start();
    I2C1_Wr(0x90);             // connect to DS1621 (#0)
    I2C1_Wr(0xAC);                            // Access Config
    I2C1_Wr(0x02);                            // set for continuous conversion
    I2C1_Repeated_Start();
    I2C1_Wr(0x90);             // restart
    I2C1_Wr(0xEE);                            // start conversions
    I2C1_Stop();
}
コード例 #6
0
unsigned short le(unsigned short address)
{
 unsigned short dado;
 I2C1_Start();
 I2C1_Wr(0xA0); //endereco disp + escrever
 I2C1_Wr(address); //aponta p/ endereco dado
 I2C1_Repeated_Start();
 I2C1_Wr(0xA1); //endereco disp + ler
 dado = I2C1_Rd(0u);//no acknowledge ?
 I2C1_Stop();
 return (dado);
}
コード例 #7
0
//Address reference
//https://electrosome.com/wp-content/uploads/2012/05/Time-Keeper-Registers.png
//https://electrosome.com/wp-content/uploads/2012/05/Reading-Data-from-DS1307.jpg
unsigned short read_ds1307(unsigned short address)
{
  unsigned short temp;
  I2C1_Start();
  I2C1_Wr(0xD0);
  I2C1_Wr(address);
  I2C1_Repeated_Start();
  I2C1_Wr(0xD1);
  temp = I2C1_Rd(0);
  I2C1_Stop();
  return(temp);
}
コード例 #8
0
//***********************************************************
void MemWrt(unsigned int address,unsigned char data_m)
 {
   unsigned char Add_H,Add_L;
   Add_H=((address&0xFF00)>>8);
   Add_L=(address&0x00FF);
   I2C1_Init(100000);
   I2C1_Start();
   I2C1_Wr(0xA0);
   I2C1_Wr(Add_H);
   I2C1_Wr(Add_L);
   I2C1_Wr(data_m);
   I2C1_Stop();
   Delay_ml(20);
 }//MemWrt
コード例 #9
0
ファイル: CoreTime.c プロジェクト: bangonkali/Chron
void Read_Time(unsigned char *sec, unsigned char *min, unsigned char *hr, unsigned char *week_day, unsigned char *day, unsigned char *mn, unsigned char *year) {
	I2C1_Start();
	I2C1_Wr(DEVICEID_DS1307);
	I2C1_Wr(0);
	I2C1_Repeated_Start();
	I2C1_Wr(0xD1);
	*sec =I2C1_Rd(1);
	*min =I2C1_Rd(1);
	*hr =I2C1_Rd(1);
	*week_day =I2C1_Rd(1);
	*day =I2C1_Rd(1);
	*mn =I2C1_Rd(1);
	*year =I2C1_Rd(0);
	I2C1_Stop();
}
コード例 #10
0
//***********************************************************
unsigned char MemRd(unsigned int address)
 {
  unsigned char data_m,Add_H,Add_L;
  Add_H=((address&0xff00)>>8);
  Add_L=(address&0x00FF);
  I2C1_Init(100000);
  I2C1_Start();
  I2C1_Wr(0xA0);
  I2C1_Wr(Add_H);
  I2C1_Wr(Add_L);
  I2C1_Repeated_Start();
  I2C1_Wr(0xA1);
  data_m = I2C1_Rd(0u);
  I2C1_Stop();
  return data_m;
 }//MemRd
コード例 #11
0
ファイル: TLC59116.c プロジェクト: QuantumFractal/LedCube
void TLC59116_WriteLEDs(byte addr, byte * val) {
    I2C1_Start();
        I2C1_Wr(0xC0 | (addr << 1) | WRITE);
        I2C1_Wr(AUTOINC_ALL | LEDOUT0);
        I2C1_Wr(val[0]);
        I2C1_Wr(val[1]);
        I2C1_Wr(val[2]);
        I2C1_Wr(val[3]);
    I2C1_Stop();
}
コード例 #12
0
ファイル: Magno_1.c プロジェクト: milindasf/RobofestRobot
void Read_Compass(){

         //Lcd_Out(1,1,"Read_Compass");
         //delay_ms(1000);
         I2C1_Start();
         I2C1_Wr(0x3C);   //sellecting magnatometer
         I2C1_Wr(0x02);
         I2C1_Wr(0x00); //single mode readinh
         I2C1_Stop();

          I2C1_Start();
          Delay_ms(15);
          if(I2c1_Is_Idle())
          {
                    I2C1_Wr(0x3C);
                    I2C1_Wr(0x03);
                    I2C1_Repeated_Start();
                    I2C1_Wr(0x3D);
                    x_h=I2c1_Rd(0)   ;
          }
          I2C1_Stop();


          I2C1_Start();
          Delay_ms(15);
          if(I2c1_Is_Idle())
          {
                    I2C1_Wr(0x3C);
                    I2C1_Wr(0x04);
                    I2C1_Repeated_Start();
                    I2C1_Wr(0x3D);
                    x_l=I2c1_Rd(0);
          }
          I2C1_Stop();


          I2C1_Start();
          Delay_ms(15);
          if(I2c1_Is_Idle())
          {
                    I2C1_Wr(0x3C);
                    I2C1_Wr(0x05);
                    I2C1_Repeated_Start();
                    I2C1_Wr(0x3D);
                    z_h=I2c1_Rd(0);
          }
          I2C1_Stop();


          I2C1_Start();
          Delay_ms(15);
          if(I2c1_Is_Idle())
          {
                    I2C1_Wr(0x3C);
                    I2C1_Wr(0x06);
                    I2C1_Repeated_Start();
                    I2C1_Wr(0x3D);
                    z_l=I2c1_Rd(0)   ;
          }
          I2C1_Stop();


          I2C1_Start();
          Delay_ms(15);
          if(I2c1_Is_Idle())
          {
                    I2C1_Wr(0x3C);
                    I2C1_Wr(0x07);
                    I2C1_Repeated_Start();
                    I2C1_Wr(0x3D);
                    y_h=I2c1_Rd(0)   ;
          }
          I2C1_Stop();

          I2C1_Start();
          Delay_ms(15);
          if(I2c1_Is_Idle())
          {
                    I2C1_Wr(0x3C);
                    I2C1_Wr(0x08);
                    I2C1_Repeated_Start();
                    I2C1_Wr(0x3D);
                    y_l=I2c1_Rd(0)   ;
          }
          I2C1_Stop();

    X_Value=convert(x_h,x_l);
    Y_Value=convert(y_h,y_l);
   // WordToStr(X_Value,to_LCD);
   // Lcd_Out(1,1,to_LCD);

    if(X_Value>=0 && Y_Value>=0){
     //1
     angle=atan((((double)Y_Value/(double)X_Value)));
     angle=angle*((180)/(3.14159265));

     }else if(X_Value<0 && Y_Value>=0){
      //2

     angle=atan((((double)Y_Value/((double)(-1)*X_Value))));
     angle=angle*((180)/(3.14159265));
     angle=180-angle;



    }else if(X_Value<0 && Y_Value<0){
      //3
     angle=atan((((double)Y_Value/(double)X_Value)));
     angle=angle*((180)/(3.14159265));
     angle=angle+180;



    }else if(X_Value>=0 && Y_Value<0){
      //4
     angle=atan(((((double)(-1)*Y_Value)/(double)X_Value)));
     angle=angle*((180)/(3.14159265));
     angle=360-angle;


    }

    if(X_value>=0){

    }else{
     X_value=(-1)*X_value;

    }
    if(Y_value>=0){

    }else{
     Y_value=(-1)*Y_value;

    }
    Delay_ms(100);
}
コード例 #13
0
ファイル: I2C_master.c プロジェクト: Simu3/RobotLog
void Main() 
{
  Setup();
  
  I2C_Master_Init();
  
  I2C1_Init(100000);

  while(1){
    I2C1_Start();
    I2C1_Wr(8 << 1);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(100);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Stop();
    
    Delay_ms(500);
    
    I2C1_Start();
    I2C1_Wr(8 << 1);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Wr(0);
    I2C1_Stop();
    
    Delay_ms(500);
  }
}
コード例 #14
0
ファイル: CoreTime.c プロジェクト: bangonkali/Chron
void Write_Time(unsigned char sec, unsigned char min, unsigned char hours, unsigned char day, unsigned char dayofweek, unsigned char month, unsigned char year) {
	I2C1_Start();          // issue start signal
	I2C1_Wr(DEVICEID_DS1307);       // address DS1307 which is 0xD0
	I2C1_Wr(0);            // start from word at address (REG0)
	I2C1_Wr(0x80 + sec);         // write $80 to REG0. (pause counter + 0 sec)
	I2C1_Wr(min);            // write 0 to minutes word to (REG1)
	I2C1_Wr(hours);         // write 17 to hours word (24-hours mode)(REG2)

	I2C1_Wr(dayofweek);         // write 5 - Tuesday (REG3)
	I2C1_Wr(day);         // write 18 to date word (REG4)
	I2C1_Wr(month);         // write 10 (Oct) to month word (REG5)
	I2C1_Wr(year);         // write 12 to year word (REG6)
	I2C1_Stop();           // issue stop signal

	I2C1_Start();          // issue start signal
	I2C1_Wr(DEVICEID_DS1307);       // address DS1307 which is 0xD0
	I2C1_Wr(0);            // start from word at address 0
	I2C1_Wr(0);            // write 0 to REG0 (enable counting + 0 sec)
	I2C1_Stop();           // issue stop signal
}