int main(void)
{
	
	//! [init]
	system_clock_config(CLOCK_RESOURCE_XO_26_MHZ, CLOCK_FREQ_26_MHZ);
	
	configure_i2c_slave();

	//! [packet]
	struct i2c_slave_packet packet = {
		.data_length = DATA_LENGTH,
		.data        = write_buffer,
	};
	//! [packet]

	//! [init]
	//! [while]
	while (true) {
		packet.data = read_buffer;
		i2c_slave_read_packet_wait(&i2c_slave_instance, &packet);
		packet.data = write_buffer;
		i2c_slave_write_packet_wait(&i2c_slave_instance, &packet);
	}
	//! [while]
}
Example #2
0
int main(void)
{
	system_clock_config(CLOCK_RESOURCE_XO_26_MHZ, CLOCK_FREQ_26_MHZ);

//! [setup_init]
	configure_adc();
//! [setup_init]

//! [main]

//! [get_res]
	uint16_t result;

	do {
		/* Wait for conversion to be done and read out result */
	} while (adc_read(CONF_ADC_INPUT_CH, &result) == STATUS_BUSY);
//! [get_res]

//! [inf_loop]
	while (1) {
		/* Infinite loop */
	}
//! [inf_loop]
//! [main]
}
int main(void)
{
//! [main_start]
	uint8_t result = 0;
	uint16_t i;
	uint32_t delay;

	/* Initialize system */
//! [system_init]
	system_clock_config(CLOCK_RESOURCE_XO_26_MHZ, CLOCK_FREQ_26_MHZ);
	for (i = 0; i < BUF_LENGTH; i++) {
		buffer_expect[i] = i;
		buffer_rx[i] = 0;
	}
//! [system_init]

//! [run_config_gpio]
	configure_gpio();
//! [run_config_gpio]
//! [run_config_spi]
	configure_spi_slave();
//! [run_config_spi]
//! [main_start]

//! [main_use_case]
//! [read]
	memset(buffer_rx, 0x0, BUF_LENGTH);
	while(spi_read_buffer_wait(&spi_slave_instance, buffer_rx, BUF_LENGTH,
		0x00) != STATUS_OK) {
		/* Wait for transfer from the master */
	}
//! [read]
//! [compare]
	for (i = 0; i < BUF_LENGTH; i++) {
		if(buffer_rx[i] != buffer_expect[i]) {
			result++;
		}
	}
//! [compare]
//! [inf_loop]
	while (true) {
		/* Infinite loop */
		if (result) {
			gpio_pin_toggle_output_level(LED_0_PIN);
			/* Add a short delay to see LED toggle */
			delay = 300000;
			while(delay--) {
			}
		} else {
			gpio_pin_toggle_output_level(LED_0_PIN);
			/* Add a short delay to see LED toggle */
			delay = 3000000;
			while(delay--) {
			}
		}
	}
//! [inf_loop]
//! [main_use_case]
}
Example #4
0
int main(void)
{
	system_clock_config(CLOCK_RESOURCE_XO_26_MHZ, CLOCK_FREQ_26_MHZ);

	//! [setup_init]
	configure_pwm();
	//! [setup_init]

	//! [main]
	while (true) {
		/* Infinite loop */
	}
	//! [main]
}
Example #5
0
int main(void)
{
	volatile double temper_value;
	volatile bool data_check_status1 = true,
	              data_check_status2 = true;
	uint32_t i;

	system_clock_config(CLOCK_RESOURCE_XO_26_MHZ, CLOCK_FREQ_26_MHZ);

	/* Initialize AT30TS(E)75x */
	at30tse_init();

	/* First round data check */
	for (i = 0; i < NB_BYTE; i++) {
		tx_buffer[i] = i;
	}

	/* Write pages in EEPROM */
	for (i = 0; i < NB_PAGE; i++) {
		at30tse_eeprom_write(tx_buffer, NB_BYTE, 0, i);
		delay(200);
	}
	
	/* Read each page in EEPROM and compare them */
	for (i = 0; i < NB_PAGE; i++) {
		memset(rx_buffer, 0, NB_BYTE);
		at30tse_eeprom_read(rx_buffer, NB_BYTE, 0, i);
		if (memcmp(tx_buffer, rx_buffer, NB_BYTE)) {
			data_check_status1 = false;
			break;
		}
	}

	/* Second round data check */
	for (i = 0; i < NB_BYTE; i++) {
		tx_buffer[i] = NB_BYTE - i;
	}

	/* Write pages in EEPROM */
	for (i = 0; i < NB_PAGE; i++) {
		at30tse_eeprom_write(tx_buffer, NB_BYTE, 0, i);
		delay(200);
	}
	
	/* Read each page in EEPROM and compare them */
	for (i = 0; i < NB_PAGE; i++) {
		memset(rx_buffer, 0, NB_BYTE);
		at30tse_eeprom_read(rx_buffer, NB_BYTE, 0, i);
		if (memcmp(tx_buffer, rx_buffer, NB_BYTE)) {
			data_check_status2 = false;
			break;
		}
	}

	/* Read thigh and tlow */
	volatile uint16_t thigh = 0;
	thigh = at30tse_read_register(AT30TSE_THIGH_REG,
			AT30TSE_NON_VOLATILE_REG, AT30TSE_THIGH_REG_SIZE);

	volatile uint16_t tlow = 0;
	tlow = at30tse_read_register(AT30TSE_TLOW_REG,
			AT30TSE_NON_VOLATILE_REG, AT30TSE_TLOW_REG_SIZE);
			
	/* Set 12-bit resolution mode. */
	at30tse_write_config_register(
			AT30TSE_CONFIG_RES(AT30TSE_CONFIG_RES_12_bit));

	while (1) {
		/* Read current temperature. */
		temper_value = at30tse_read_temperature();
	}

	UNUSED(data_check_status1);
	UNUSED(data_check_status2);
	UNUSED(temper_value);
	UNUSED(tlow);
	UNUSED(thigh);
}