int main(void)
{
	fpu_enable();
	system_init();
	pll_start(CRYSTAL, FREQUENCY);

	gpio_pin_cfg(GPIOD, 12, GPIO_OUT_PP_25MHz);
	gpio_pin_cfg(GPIOD, 13, GPIO_OUT_PP_25MHz);
	gpio_pin_cfg(GPIOD, 14, GPIO_OUT_PP_25MHz);
	gpio_pin_cfg(GPIOD, 15, GPIO_OUT_PP_25MHz);

	USBD_Init(&USB_Dev, USB_OTG_FS_CORE_ID, &USR_desc, &AUDIO_cb, &USR_cb);

	while(1);
}
/**
 * @brief Configure peripherals
 *
 * Use configuration in separate function rather than in main
 * to save stack space for one-time-used configuration variables.
 * Configure: USART and GPIO
 */
static void
configure_peripherals(void)
{
	gpio_pin_cfg_t	pincfg;

	gpio_init();

	usartcfg.device = USART_DEVICE_2;
	usartcfg.baudrate = 115200;

	usart_init(&usartcfg);

	pincfg.mode = GPIO_CFG_MODE_OUTPUT;
	pincfg.speed = GPIO_CFG_SPEED_25MHZ;
	pincfg.type = GPIO_CFG_TYPE_PP;
	gpio_pin_cfg(LED_GPIO, LED_pin_red, &pincfg);
	gpio_pin_cfg(LED_GPIO, LED_pin_green, &pincfg);
}
Beispiel #3
0
void adc_init(void) {
	gpio_pin_cfg(GPIOB, 0, GPIO_CRx_MODE_CNF_IN_ANALOG_value);

//RCC
	// ADC CLOCK ON
	bitband_t m_BITBAND_PERIPH(&RCC->APB2ENR,9) = 1; // RCC->APB2ENR RCC_APB2ENR_ADC1EN <= bit9;
	// ADC Prescaler (2)
	bitband_t m_BITBAND_PERIPH(&RCC->CFGR,14) = 1; // RCC->CFGR bit 14 => RCC_CFGR_ADCPRE_0;;
	bitband_t m_BITBAND_PERIPH(&RCC->CFGR,15) = 1; // RCC->CFGR bit 14 => RCC_CFGR_ADCPRE_0;;
/*
//CR1
	//Discontinius mode enable
	bitband_t m_BITBAND_PERIPH(&ADC1->CR1,11) = 1; //ADC1->CR1 ADC_CR1_DISCEN bit 15;
	// Channel 8 (ADC_CR1_DISCNUM = 000 ) 1channel
	bitband_t m_BITBAND_PERIPH(&ADC1->CR1,13) = 0; //ADC1->CR1 ADC_CR1_DISCNUM_0 bit 13;
	bitband_t m_BITBAND_PERIPH(&ADC1->CR1,14) = 0; //ADC1->CR1 ADC_CR1_DISCNUM_1 bit 14;
	bitband_t m_BITBAND_PERIPH(&ADC1->CR1,15) = 0; //ADC1->CR1 ADC_CR1_DISCNUM_2 bit 15;

	// Channel 8
	bitband_t m_BITBAND_PERIPH(&ADC1->SQR3,0) = 0; //ADC1->SQR3 |= ADC_SQR3_SQ1_0; bit 0;
	bitband_t m_BITBAND_PERIPH(&ADC1->SQR3,0) = 0; //ADC1->SQR3 |= ADC_SQR3_SQ1_1; bit 1;
	bitband_t m_BITBAND_PERIPH(&ADC1->SQR3,0) = 0; //ADC1->SQR3 |= ADC_SQR3_SQ1_2; bit 2;
	bitband_t m_BITBAND_PERIPH(&ADC1->SQR3,0) = 1; //ADC1->SQR3 |= ADC_SQR3_SQ1_3; bit 3;

//CR2
	//Bit 22 SWSTART: Start conversion of regular channels
	bitband_t m_BITBAND_PERIPH(&ADC1->CR2,22) = 1; //ADC1->CR2 ADC_CR2_SWSTART bit 22;
	// Set ADC ON
	bitband_t m_BITBAND_PERIPH(&ADC1->CR2,0) = 1; // ADC1->CR2 ADC_CR2_ADON <= bit1;
*/
	ADC1 ->CR2 = 0x005E7003;	//Switch on the ADC and enable continuous conversion
	ADC1 ->SQR1 = 0x0000;	 	//set sequence length to one
	ADC1 ->SQR2 = 0x0000;	 	//select conversion on channel zero
	ADC1 ->SQR3 = 0x0008;
	ADC1 ->CR2 |= 0x005E7003; 	//rewrite on bit
	ADC1 ->CR1 = 0x000100;		//Start conversion of regular	channels, enable ADC

}