Esempio n. 1
0
int main(void)
{
  unsigned char write_data=0x75, recv_data;
  int testn=0;
  USART_init();
  print_UART(" This is the test for TWI ");

  _delay_ms(1000);
  PORTD |= 0x80; ///turn led on
  _delay_ms(100);
  TWI_init_master();
  sei();
  print_UART(" Sending Start condition ");
  TWI_start();
  print_UART(" address= %x ", ((address<<1)|write));
  TWI_write_address((address<<1)|write);
  print_UART(" writing register = %x ", write_data);
  TWI_write_byte(write_data); //write register
  print_UART(" Repeat Start ");
  TWI_start(); //repeated start
  print_UART(" address read= %x ", ((address<<1)|read));
  TWI_write_address((address<<1)|read);
   print_UART(" read Data ");
  recv_data=TWI_read_byte(1); ///read byte and nack
  TWI_stop();
  print_UART(" This is the value of the register= %x  ", recv_data);
  PORTD &= 0x7F;
    
 
  return 0;
}
Esempio n. 2
0
void TWI_ScrollFrame(void)
{
    uint8_t segindex=0,i,j;
    uint8_t str_Ptr[8];
    uint8_t activeStatus = 1;


    while((segindex<8) && (NewMsgReceived==0))
    {
        activeStatus = 1;
        NumberOfSegments = 1;
        for(i=0; (activeStatus) && (NewMsgReceived==0);i++)
        {


            for(j=0;j<MaxColPerSegment;j++)
            {

                str_Ptr[j] = FrameBuffer[(i*8)+j+segindex];
            }



            if(i==0)
            {
                for(j=0;j<MaxColPerSegment;j++)
                {
                    pattern[j] = str_Ptr[j];
                }
            }
            else
            {

                activeStatus = TWI_start(); // Function to send start condition

                if(activeStatus)
                {

                    activeStatus = TWI_write_address(i*2+0x30); // Function to write address and data direction bit(write) on SDA

                    if(activeStatus)
                    {

                        NumberOfSegments++;
                        for(j=0;j<8;j++)
                        {
                            TWI_write_data(str_Ptr[j]);      // Function to write data in slave
                        }
                    }
                }

                TWI_stop(); // Function to send stop condition
            }
        }

        for(i=NumberOfSegments;i<MAX_DEVICES;i++)
            DELAY_ms(SCROLL_DELAY_MS);
        segindex++;
    }
}
Esempio n. 3
0
void DisplayString(char *ptr_msgPointer)
{
    int i,j;
    uint8_t activeStatus = 1;
    NumberOfSegments = 1;
    BuildFrame(ptr_msgPointer);

    for(i=0;activeStatus;i++)
    {
        if(i==0)
        {
            for(j=0;j<8;j++)
                pattern[j] = FrameBuffer[j];
        }
        else
        {
            TWI_start(); // Function to send start condition

            activeStatus = TWI_write_address(i*2+0x30); // Function to write address and data direction bit(write) on SDA
            if(activeStatus)
            {
                NumberOfSegments++;
                for(j=0;j<8;j++)
                {
                    TWI_write_data(FrameBuffer[i*8+j]);      // Function to write data in slave
                    //   UART_TxChar(' ');
                    // UART_TxHexNumber(i,2);      // Function to write data in slave
                }
            }
            TWI_stop(); // Function to send stop condition
        }
    }
}
int main(void)
{
	_delay_ms(2000);
	DDRB=0xff;
	TWI_init_master();  // Function to initialize TWI
	while(1)
	{
		if(write_data==0x00)
		write_data=1;
		
		TWI_start(); // Function to send start condition
		TWI_write_address(address+write); // Function to write address and data direction bit(write) on SDA
		TWI_write_data(255);      // Function to write data in slave
		TWI_stop(); // Function to send stop condition
		
		
		_delay_ms(100); // Delay of 10 mili second
		
		PORTB=0xff;
		TWI_start();
		TWI_read_address(address+read); // Function to write address and data direction bit(read) on SDA
		TWI_read_data(); // Function to read data from slave
		TWI_stop();
		
		_delay_ms(2000);
	}
	
	
}
Esempio n. 5
0
/////////////////Functions/////////////////////////////////
void TWI_init_master(void) // Function to initialize master
{
	TWBR=3;	// Bit rate
	TWSR=(0<<TWPS1)|(0<<TWPS0);	// Setting prescalar bits
	PORTD|=(1<<0)|(1<<1);
	// SCL freq= F_CPU/(16+2(TWBR).4^TWPS)
	TCCR2=0b00001011;
	 TIMSK|=1<<OCIE2;
		OCR2=200;
		TWI_start(); 
		TWI_write_address(0xD2); 
		TWI_write_data(0x20);	 
		TWI_write_data(0b11101111);
		TWI_stop(); 
		TWI_start(); 
		TWI_write_address(0xD2); 
		TWI_write_data(0x23);	 
		TWI_write_data(0b00010000);
		TWI_stop(); 

}
Esempio n. 6
0
signed short int getdata(unsigned char add)
{
        signed short int DATA; 
        TWI_start(); 
		TWI_write_address(0xD2); 
		TWI_write_data(add);	
		
		TWI_repeated_start();	
		TWI_read_address(0xD3);	
		DATA=TWI_read_data();		
		TWI_stop();
		return DATA;

}