int chip_init(void) { avr_timer1_init(CONFIG_TIMER1_TICK_MS); avr_usart_init(CONFIG_USART_BAUD); #ifdef CONFIG_SPI avr_spi_init(); #endif #ifdef CONFIG_I2C avr_i2c_init(); #endif #ifdef CONFIG_ADC avr_adc_init(); #endif return 0; }
void m8_init(struct avr_t * avr) { struct mcu_t * mcu = (struct mcu_t*)avr; avr_eeprom_init(avr, &mcu->eeprom); avr_flash_init(avr, &mcu->selfprog); avr_watchdog_init(avr, &mcu->watchdog); avr_extint_init(avr, &mcu->extint); avr_ioport_init(avr, &mcu->portb); avr_ioport_init(avr, &mcu->portc); avr_ioport_init(avr, &mcu->portd); avr_uart_init(avr, &mcu->uart); avr_adc_init(avr, &mcu->adc); avr_timer_init(avr, &mcu->timer0); avr_timer_init(avr, &mcu->timer1); avr_timer_init(avr, &mcu->timer2); avr_spi_init(avr, &mcu->spi); avr_twi_init(avr, &mcu->twi); }
int main(void) { avr_init(); avr_adc_init(); xbee_init(); xbee_wait_for_association(); avr_clear_bit(LIGHT_SENSOR_PORT, LIGHT_SENSOR_PIN); union { uint16_t reading; uint8_t bytes[2]; } light; while(TRUE) { light.reading = avr_adc_read(LIGHT_SENSOR_PIN); xbee_send_bytes(light.bytes, 2); _delay_ms(60000L); } return(0); }
void mx4_init(struct avr_t * avr) { struct mcu_t * mcu = (struct mcu_t*)avr; avr_eeprom_init(avr, &mcu->eeprom); avr_flash_init(avr, &mcu->selfprog); avr_extint_init(avr, &mcu->extint); avr_watchdog_init(avr, &mcu->watchdog); avr_ioport_init(avr, &mcu->porta); avr_ioport_init(avr, &mcu->portb); avr_ioport_init(avr, &mcu->portc); avr_ioport_init(avr, &mcu->portd); avr_uart_init(avr, &mcu->uart0); avr_uart_init(avr, &mcu->uart1); avr_adc_init(avr, &mcu->adc); avr_timer_init(avr, &mcu->timer0); avr_timer_init(avr, &mcu->timer1); avr_timer_init(avr, &mcu->timer2); if (mcu->timer3.name) // only resent on 1284 avr_timer_init(avr, &mcu->timer3); avr_spi_init(avr, &mcu->spi); avr_twi_init(avr, &mcu->twi); }