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] }
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] }
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] }
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); }