Exemplo n.º 1
0
void TWI_write_int( uint8_t SLA, uint8_t data) {

	TWI_start();
	TWI_write(SLA);
	TWI_write(data);
	TWI_stop();
}
Exemplo n.º 2
0
void TWI_write_buf( uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf) {

	TWI_start();
	TWI_write(SLA);
	TWI_write(adr);
	while (len--) TWI_write(*buf++);
	TWI_stop();
}
Exemplo n.º 3
0
void TWI_read_buf(uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf) {

	TWI_start();
	TWI_write(SLA);
	TWI_write(adr);
	TWI_start();
	TWI_write(SLA + 1);
	while (len--) *buf++ = TWI_read( len ? ACK : NACK );
	TWI_stop();
}
Exemplo n.º 4
0
Arquivo: sfp.c Projeto: lysy1033/sfp
void sfp_read_vendor_name(uint8_t *buf) {
	uint8_t len=15;
	TWI_start();
	TWI_write(0xa0);
	TWI_write(0x14);
	TWI_start();
	TWI_write(0xa1);
	while (len--) *buf++ = TWI_read( len ? ACK : NACK );
	TWI_stop();
}
Exemplo n.º 5
0
Arquivo: sfp.c Projeto: lysy1033/sfp
void sfp_read_to_buf(uint8_t SLA, uint8_t len, uint8_t *buf) {

	TWI_start();
	TWI_write(SLA);
	TWI_write(0xa0);
	TWI_start();
	TWI_write(SLA + 1);
	while (len--) *buf++ = TWI_read( len ? ACK : NACK );
	TWI_stop();
}
Exemplo n.º 6
0
uint8_t TWI_read_int(uint8_t SLA) {
	uint8_t data;

	TWI_start();
	TWI_write(SLA);
	TWI_start();
	TWI_write(SLA + 1);
	data = TWI_read(NACK);
	TWI_stop();

	return data;
}
Exemplo n.º 7
0
Arquivo: sfp.c Projeto: lysy1033/sfp
void EI2C_read_buf(uint8_t device, uint16_t subAddr, uint16_t len, uint8_t *buf) {

	while (len--) {
		TWI_start();
		TWI_write(device | ((subAddr>>8)<<1) );
		TWI_write(subAddr);
		TWI_start();
		TWI_write(device + 1);
		*buf++ = TWI_read( NACK );
		TWI_stop();
		subAddr++;
	}


}
Exemplo n.º 8
0
// funkcja do odczytu z EXPANDERA PCF8574 *********************
uint8_t PCF8574_read( uint8_t SLA ) {
	uint8_t res=0;
	TWI_start();
	TWI_write(SLA + 1);
	res = TWI_read( NACK );
	TWI_stop();
	return res;
}
Exemplo n.º 9
0
Arquivo: send.c Projeto: aelg/plogen
void send_tape_value(uint8_t value){
	uint8_t s[4];
	s[0] = CMD_SENSOR_DATA;
	s[1] = 2;
	s[2] = TAPE_VALUE;
	s[3] = value;

	TWI_write(COMM_ADDRESS, s, 4);
}
Exemplo n.º 10
0
Arquivo: send.c Projeto: aelg/plogen
void send_number_of_diods(uint8_t diod){
	uint8_t s[4];
	s[0]= CMD_SENSOR_DATA;
	s[1]= 2;
	s[2]= DIOD;
	s[3]= diod;

	TWI_write(CONTROL_ADDRESS,s,4);
}
Exemplo n.º 11
0
Arquivo: send.c Projeto: aelg/plogen
void send_tape(uint8_t tape){
	uint8_t s[4];
	s[0] = CMD_SENSOR_DATA;
	s[1] = 2;
	s[2] = TAPE;
	s[3] = tape;

	TWI_write(GENERAL_CALL, s, 4);
}
Exemplo n.º 12
0
Arquivo: send.c Projeto: aelg/plogen
void send_sensor_mode(uint8_t mode){

	uint8_t s[3];
	s[0] = CMD_SENSOR_MODE;
	s[1] = 1;
	s[2] = mode;

	TWI_write(SENSOR_ADDRESS, s, 3);

}
Exemplo n.º 13
0
Arquivo: send.c Projeto: aelg/plogen
void send_line_pos(uint8_t pos){
	uint8_t s[4];
	s[0] = CMD_SENSOR_DATA;
	s[1] = 2;
	s[2] = LINE_POSITION;
	s[3] = pos;

	TWI_write(GENERAL_CALL, s, 4);

}
Exemplo n.º 14
0
Arquivo: send.c Projeto: aelg/plogen
//Funktion för att skicka differensen
void send_differences(uint8_t diff, uint8_t rot){
	uint8_t s[6];
	s[0] = CMD_SENSOR_DATA;
	s[1] = 4;
	s[2] = IRDIFF;
	s[3] = diff;
	s[4] = IRROT;
	s[5] = rot;

	TWI_write(GENERAL_CALL, s, 6);
}
Exemplo n.º 15
0
int main(void)
{
	unsigned char temp[2];
	unsigned int j;

	DDRB = 0x3F;

	TWI_first_init();
	sei();
		
	TWI_write(DS1631,"\xAC\x0C",2);  	// Continues conversion mode, 12 bit precision
	TWI_write(DS1631,"\x51",1);		// Start conversion
	TWI_write(DS1631,"\xAA",1);		// Start reading temperature
	
	for(;;) {
		for(j=0; j<50000; j++) wait();// Wait a while, the GCC optimizer trashes empty loops so a volatile nop is inserted 
		TWI_read(DS1631,temp,2);		// Read the temperature

		PORTB = ~temp[0];
	}
}
Exemplo n.º 16
0
Arquivo: send.c Projeto: aelg/plogen
void send_reg_params(uint16_t p, uint16_t d){
	uint8_t s[8];
	s[0] = CMD_REG_PARAMS;
	s[1] = 6;
	s[2] = REG_P;
	s[3] = p >> 8;
	s[4] = p;
	s[5] = REG_D;
	s[6] = d >> 8;
	s[7] = d;

	TWI_write(COMM_ADDRESS, s, 8);
}
Exemplo n.º 17
0
Arquivo: send.c Projeto: aelg/plogen
void send_long_ir_data(uint8_t long1, uint8_t long2){

	uint8_t s[6];
	s[0] = CMD_SENSOR_DATA;
	s[1] = 4;
	s[2] = IR_LONG_LEFT;
	s[3] = long1;
	s[4] = IR_LONG_RIGHT;
	s[5] = long2;


	TWI_write(CONTROL_ADDRESS, s, 6);
	
}
Exemplo n.º 18
0
int main(void)
{
  TWI_init();
  UART_init();
  sei();
    
  while(1) 
  {
    TWI_read(0x50,dat,128);	// Czytaj 24c02 EEPROM (A0=A1=A2 = 0)
    DEBUG_hextable(dat,128);  

    TWI_write(0x50,dat,128);	// Zapisz do PCF8583 (A0 = 1)
  
    TWI_read(0x51,dat,128);	// Czytaj z PCF8583 (A0 = 1)
    DEBUG_hextable(dat,128); 
    delayms(500);
  }
}
Exemplo n.º 19
0
Arquivo: send.c Projeto: aelg/plogen
void send_sensor_values(uint8_t ll, uint8_t lr, 
						uint8_t sl, uint8_t sr, 
						uint8_t sb){
	uint8_t s[12];
	s[0] = CMD_SENSOR_DATA;
	s[1] = 10;
	s[2] = IR_LONG_LEFT;
	s[3] = ll;
	s[4] = IR_LONG_RIGHT;
	s[5] = lr;
	s[6] = IR_SHORT_LEFT;
	s[7] = sl;
	s[8] = IR_SHORT_RIGHT;
	s[9] = sr;
	s[10] = IR_SHORT_BACK;
	s[11] = sb;

	TWI_write(COMM_ADDRESS, s, 12);
}