コード例 #1
0
ファイル: ina219.c プロジェクト: vanvught/rpidmx512
static void i2c_setup(const device_info_t *device_info) {
	i2c_set_address(device_info->slave_address);

	if (device_info->fast_mode) {
		i2c_set_baudrate(I2C_FULL_SPEED);
	} else {
		i2c_set_baudrate(I2C_NORMAL_SPEED);
	}
}
コード例 #2
0
ファイル: tc1602.cpp プロジェクト: vanvught/rpidmx512
void Tc1602::Setup(void) {
	i2c_set_address(m_nSlaveAddress);

	if (bFastMode) {
		i2c_set_baudrate(I2C_FULL_SPEED);
	} else {
		i2c_set_baudrate(I2C_NORMAL_SPEED);
	}
}
コード例 #3
0
ファイル: i2cdetect.c プロジェクト: vanvught/rpidmx512
int main(int argc, char **argv) {
	uint8_t first = 0x03, last = 0x77;
	uint8_t i, j;
	uint8_t address;

	if (!i2c_begin()) {
		return -1;
	}

	i2c_set_baudrate(I2C_NORMAL_SPEED);

	printf("[V%s] Compiled on %s at %s\n\n", SOFTWARE_VERSION, __DATE__, __TIME__);

	for (address = 0x00; address <= 0x7F; address++) {
		/* Skip unwanted addresses */
		if (address < first || address > last) {
			continue;
		}

		if (i2c_is_connected(address)) {
			printf("0x%.2X : 0x%.2X : %s\n", (unsigned int) address, (unsigned int) (address << 1), i2c_lookup_device(address));
		}
	}

	puts("\n     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f");

	for (i = 0; i < 128; i += 16) {
		printf("%02x: ", (unsigned int) i);
		for (j = 0; j < 16; j++) {
			/* Skip unwanted addresses */
			if (i + j < first || i + j > last) {
				printf("   ");
				continue;
			}

			if (i2c_is_connected((i + j))) {
				printf("%02x ", (unsigned int) (i + j));
			} else {
				printf("-- ");
			}
		}

		puts("");
	}

	return 0;
}
コード例 #4
0
ファイル: i2c.c プロジェクト: ShrimpingIt/micropython
void i2c_init_freq(const pyb_i2c_obj_t *self, mp_int_t freq) {
    I2C_InitTypeDef *init = &self->i2c->Init;

    init->AddressingMode    = I2C_ADDRESSINGMODE_7BIT;
    init->DualAddressMode   = I2C_DUALADDRESS_DISABLED;
    init->GeneralCallMode   = I2C_GENERALCALL_DISABLED;
    init->NoStretchMode     = I2C_NOSTRETCH_DISABLE;
    init->OwnAddress1       = PYB_I2C_MASTER_ADDRESS;
    init->OwnAddress2       = 0; // unused
    if (freq != -1) {
        i2c_set_baudrate(init, MIN(freq, MICROPY_HW_I2C_BAUDRATE_MAX));
    }

    *self->use_dma = false;

    // init the I2C bus
    i2c_deinit(self->i2c);
    i2c_init(self->i2c);
}