static void OEMInitializeSystemTimer(UINT32 msecPerSysTick, UINT32 countsPerMSec, UINT32 countsMargin) { UINT32 countsPerSysTick; // Validate Input parameters countsPerSysTick = msecPerSysTick * countsPerMSec; InitSystemTimer(countsPerSysTick); }
int main(void) { //STATIC_ASSERT(sizeof(uint16_t) == 2); InitGPIO(); InitSPI_soft(); InitI2C_soft(); InitADC(); InitSystemTimer(); InitTimers(); InitMessages(); InitCC2500(preferredSettings); //(const uint8_t **)conf(+6bytes of code), preferredSettings uart0_init( UART_BAUD_SELECT(RS485_BAUDRATE, F_CPU) ); //_delay_ms(5000); //InitEXTI(); //MCUCR |= (_BV(ISC11) | _BV(ISC01)); /*check Watchdog reset flag*/ if(bit_is_set(MCUCSR, WDRF)) { //increase wathcdog reset counter and save in eeprom } set_sleep_mode(SLEEP_MODE_IDLE); //варианты SLEEP_MODE_PWR_SAVE SLEEP_MODE_IDLE SLEEP_MODE_ADC //wdt_enable(WDTO_2S); sei(); //enable interrupts for (uint8_t i = 0; i<0x05; i++) { //_spi_start(); //spi_TxRx(0x9D); //_spi_stop(); _delay_ms(100); PORTC |= _BV(PC2); //blink for test _delay_ms(100); PORTC &= ~_BV(PC2); _delay_ms(100); RS485_DE_HIGH; uart0_putc(0xba); _delay_ms(2); RS485_DE_LOW; } RS485_DE_LOW; while(1) { cc_table_state[CC_state](); ProcessTimers(&sys_timer); ProcessMessages(); wdt_reset(); /*enter in sleep mode until interrupts occured*/ // cli(); //disable interrupts // if (some_condition) // { // sleep_enable(); // sei(); // sleep_cpu(); // sleep_disable(); // } // sei(); } return 0; }