/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); /* Hardware Initialization */ LEDs_Init(); SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER); ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_128); Temperature_Init(); Dataflash_Init(); USB_Init(); TWI_Init(TWI_BIT_PRESCALE_4, TWI_BITLENGTH_FROM_FREQ(4, 50000)); /* 500ms logging interval timer configuration */ OCR1A = (((F_CPU / 1024) / 2) - 1); TCCR1B = (1 << WGM12) | (1 << CS12) | (1 << CS10); TIMSK1 = (1 << OCIE1A); /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { #if (ARCH == ARCH_AVR8) /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); #endif /* Hardware Initialization */ LEDs_Init(); ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_128); Temperature_Init(); Dataflash_Init(); USB_Init(); TWI_Init(TWI_BIT_PRESCALE_4, TWI_BITLENGTH_FROM_FREQ(4, 50000)); RTC_Init(); /* 500ms logging interval timer configuration */ OCR1A = (((F_CPU / 256) / 2) - 1); TCCR1B = (1 << WGM12) | (1 << CS12); TIMSK1 = (1 << OCIE1A); /* Check if the Dataflash is working, abort if not */ if (!(DataflashManager_CheckDataflashOperation())) { LEDs_SetAllLEDs(LEDMASK_USB_ERROR); for(;;); } /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); /* Hardware Initialization */ LEDs_Init(); SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER); Dataflash_Init(); USB_Init(); /* Check if the Dataflash is working, abort if not */ if (!(DataflashManager_CheckDataflashOperation())) { LEDs_SetAllLEDs(LEDMASK_USB_ERROR); for(;;); } /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); }
/** Main program entry point. This routine configures the hardware required by the application, then * starts the scheduler to run the application tasks. */ int main(void) { /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable Clock Division */ SetSystemClockPrescaler(0); /* Hardware Initialization */ LEDs_Init(); Dataflash_Init(SPI_SPEED_FCPU_DIV_2); /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); /* Indicate USB not ready */ UpdateStatus(Status_USBNotReady); /* Initialize Scheduler so that it can be used */ Scheduler_Init(); /* Initialize USB Subsystem */ USB_Init(); /* Scheduling - routine never returns, so put this last in the main function */ Scheduler_Start(); }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); /* Hardware Initialization */ #if defined(USB_CAN_BE_BOTH) USB_Init(USB_MODE_UID); #else USB_Init(); #endif LEDs_Init(); SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER); Dataflash_Init(); Buttons_Init(); SerialStream_Init(9600, true); #if defined(USB_CAN_BE_DEVICE) /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); #endif }
int main(void) { uint_reg_t Dummy; /* ============================= * Buttons Compile Check * ============================= */ // cppcheck-suppress redundantAssignment Dummy = BUTTONS_BUTTON1; Buttons_Init(); // cppcheck-suppress redundantAssignment Dummy = Buttons_GetStatus(); Buttons_Disable(); /* ============================= * Dataflash Compile Check * ============================= */ // cppcheck-suppress redundantAssignment Dummy = DATAFLASH_TOTALCHIPS + DATAFLASH_NO_CHIP + DATAFLASH_CHIP1 + DATAFLASH_PAGE_SIZE + DATAFLASH_PAGES; Dataflash_Init(); Dataflash_TransferByte(0); Dataflash_SendByte(0); // cppcheck-suppress redundantAssignment Dummy = Dataflash_ReceiveByte(); // cppcheck-suppress redundantAssignment Dummy = Dataflash_GetSelectedChip(); Dataflash_SelectChip(DATAFLASH_CHIP1); Dataflash_DeselectChip(); Dataflash_SelectChipFromPage(0); Dataflash_ToggleSelectedChipCS(); Dataflash_WaitWhileBusy(); Dataflash_SendAddressBytes(0, 0); /* ============================= * LEDs Compile Check * ============================= */ // cppcheck-suppress redundantAssignment Dummy = LEDS_LED1 + LEDS_LED2 + LEDS_LED3 + LEDS_LED4; LEDs_Init(); LEDs_TurnOnLEDs(LEDS_ALL_LEDS); LEDs_TurnOffLEDs(LEDS_ALL_LEDS); LEDs_SetAllLEDs(LEDS_ALL_LEDS); LEDs_ChangeLEDs(LEDS_ALL_LEDS, LEDS_NO_LEDS); LEDs_ToggleLEDs(LEDS_ALL_LEDS); // cppcheck-suppress redundantAssignment Dummy = LEDs_GetLEDs(); LEDs_Disable(); /* ============================= * Joystick Compile Check * ============================= */ // cppcheck-suppress redundantAssignment Dummy = JOY_LEFT + JOY_RIGHT + JOY_UP + JOY_DOWN + JOY_PRESS; Joystick_Init(); // cppcheck-suppress redundantAssignment Dummy = Joystick_GetStatus(); Joystick_Disable(); (void)Dummy; }
/** * Initializes the system. * System control registers must be unlocked. */ void SYS_Init() { // TODO: why is SYS_UnlockReg() needed? Should be already unlocked. SYS_UnlockReg(); // HIRC clock (internal RC 22.1184MHz) CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk); CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk); // HCLK clock source: HIRC, HCLK source divider: 1 CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1)); // HXT clock (external XTAL 12MHz) CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk); CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk); // Enable 72MHz optimization FMC_EnableFreqOptimizeMode(FMC_FTCTL_OPTIMIZE_72MHZ); // Core clock: PLL CLK_SetCoreClock(PLL_CLOCK); CLK_WaitClockReady(CLK_STATUS_PLLSTB_Msk); // SPI0 clock: PCLK0 CLK_SetModuleClock(SPI0_MODULE, CLK_CLKSEL2_SPI0SEL_PCLK0, 0); CLK_EnableModuleClock(SPI0_MODULE); // TMR0 clock: HXT CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, 0); CLK_EnableModuleClock(TMR0_MODULE); // USBD clock CLK_SetModuleClock(USBD_MODULE, 0, CLK_CLKDIV0_USB(3)); CLK_EnableModuleClock(USBD_MODULE); // Enable USB 3.3V LDO SYS->USBPHY = SYS_USBPHY_LDO33EN_Msk; // EADC clock: 72Mhz / 8 CLK_SetModuleClock(EADC_MODULE, 0, CLK_CLKDIV0_EADC(8)); CLK_EnableModuleClock(EADC_MODULE); // Enable BOD (reset, 2.2V) SYS_EnableBOD(SYS_BODCTL_BOD_RST_EN, SYS_BODCTL_BODVL_2_2V); // Update system core clock SystemCoreClockUpdate(); // Initialize dataflash Dataflash_Init(); // Initialize I/O Display_SetupSPI(); Button_Init(); ADC_Init(); // Initialize display Display_Init(); }
int main(void) { uint_reg_t Dummy; /* ============================= * Buttons Compile Check * ============================= */ Buttons_Init(); // cppcheck-suppress redundantAssignment Dummy = Buttons_GetStatus(); Buttons_Disable(); /* ============================= * Dataflash Compile Check * ============================= */ Dataflash_Init(); Dataflash_TransferByte(0); Dataflash_SendByte(0); // cppcheck-suppress redundantAssignment Dummy = Dataflash_ReceiveByte(); // cppcheck-suppress redundantAssignment Dummy = Dataflash_GetSelectedChip(); Dataflash_SelectChip(0); Dataflash_DeselectChip(); Dataflash_SelectChipFromPage(0); Dataflash_ToggleSelectedChipCS(); Dataflash_WaitWhileBusy(); Dataflash_SendAddressBytes(0, 0); /* ============================= * LEDs Compile Check * ============================= */ LEDs_Init(); LEDs_TurnOnLEDs(LEDS_ALL_LEDS); LEDs_TurnOffLEDs(LEDS_ALL_LEDS); LEDs_SetAllLEDs(LEDS_ALL_LEDS); LEDs_ChangeLEDs(LEDS_ALL_LEDS, LEDS_NO_LEDS); LEDs_ToggleLEDs(LEDS_ALL_LEDS); // cppcheck-suppress redundantAssignment Dummy = LEDs_GetLEDs(); LEDs_Disable(); /* ============================= * Joystick Compile Check * ============================= */ Joystick_Init(); // cppcheck-suppress redundantAssignment Dummy = Joystick_GetStatus(); Joystick_Disable(); (void)Dummy; }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); /* Hardware Initialization */ SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER); Dataflash_Init(); LEDs_Init(); USB_Init(USB_MODE_UID); }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { #if (ARCH == ARCH_AVR8) /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); #endif /* Hardware Initialization */ Dataflash_Init(); LEDs_Init(); USB_Init(USB_MODE_UID); }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); /* Hardware Initialization */ LEDs_Init(); SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER); Dataflash_Init(); USB_Init(); /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { #if (ARCH == ARCH_AVR8) /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); #elif (ARCH == ARCH_XMEGA) /* Start the PLL to multiply the 2MHz RC oscillator to 32MHz and switch the CPU core to run from it */ XMEGACLK_StartPLL(CLOCK_SRC_INT_RC2MHZ, 2000000, F_CPU); XMEGACLK_SetCPUClockSource(CLOCK_SRC_PLL); /* Start the 32MHz internal RC oscillator and start the DFLL to increase it to 48MHz using the USB SOF as a reference */ XMEGACLK_StartInternalOscillator(CLOCK_SRC_INT_RC32MHZ); XMEGACLK_StartDFLL(CLOCK_SRC_INT_RC32MHZ, DFLL_REF_INT_USBSOF, F_USB); PMIC.CTRL = PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm; #endif /* Hardware Initialization */ LEDs_Init(); Joystick_Init(); Buttons_Init(); Dataflash_Init(); USB_Init(); /* Check if the Dataflash is working, abort if not */ if (!(DataflashManager_CheckDataflashOperation())) { LEDs_SetAllLEDs(LEDMASK_USB_ERROR); for(;;); } /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); }
/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); /* Hardware Initialization */ #if defined(USB_CAN_BE_BOTH) USB_Init(USB_MODE_UID); #else USB_Init(); #endif LEDs_Init(); SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER); Dataflash_Init(); Buttons_Init(); Serial_Init(9600, true); /* Create a stdio stream for the serial port for stdin and stdout */ Serial_CreateStream(NULL); #if defined(USB_CAN_BE_DEVICE) /* Check if the Dataflash is working, abort if not */ if (!(DataflashManager_CheckDataflashOperation())) { LEDs_SetAllLEDs(LEDMASK_USB_ERROR); for(;;); } /* Clear Dataflash sector protections, if enabled */ DataflashManager_ResetDataflashProtections(); #endif }