|
|
@ -1,5 +1,6 @@ |
|
|
|
#include "cppmain.h" |
|
|
|
#include "usb_device.h" |
|
|
|
#include "utils.h" |
|
|
|
|
|
|
|
DAC_HandleTypeDef hdac1; |
|
|
|
TIM_HandleTypeDef htim_dac1; |
|
|
@ -171,7 +172,7 @@ void dac_init(void) |
|
|
|
htim_dac1.Instance = TIM2; |
|
|
|
htim_dac1.Init.Prescaler = 0; |
|
|
|
htim_dac1.Init.CounterMode = TIM_COUNTERMODE_UP; |
|
|
|
htim_dac1.Init.Period = 2000;// *100;
|
|
|
|
htim_dac1.Init.Period = 2000; // *100;
|
|
|
|
htim_dac1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; |
|
|
|
if (HAL_TIM_Base_Init(&htim_dac1) != HAL_OK) { |
|
|
|
Error_Handler(); |
|
|
@ -232,42 +233,38 @@ void dac_init(void) |
|
|
|
|
|
|
|
void adc_init(void) |
|
|
|
{ |
|
|
|
// GPIO
|
|
|
|
GPIO_InitTypeDef conf = { |
|
|
|
.Pin = GPIO_PIN_4, |
|
|
|
.Mode = GPIO_MODE_ANALOG, |
|
|
|
.Pull = GPIO_NOPULL, |
|
|
|
.Speed = GPIO_SPEED_FREQ_MEDIUM, |
|
|
|
}; |
|
|
|
|
|
|
|
HAL_GPIO_Init(GPIOC, &conf); |
|
|
|
{ |
|
|
|
// GPIO
|
|
|
|
GPIO_InitTypeDef conf = { |
|
|
|
.Pin = GPIO_PIN_1, |
|
|
|
.Mode = GPIO_MODE_ANALOG, |
|
|
|
.Pull = GPIO_NOPULL, |
|
|
|
.Speed = GPIO_SPEED_FREQ_LOW, |
|
|
|
}; |
|
|
|
HAL_GPIO_Init(GPIOA, &conf); |
|
|
|
} |
|
|
|
{ |
|
|
|
// GPIO
|
|
|
|
GPIO_InitTypeDef conf = { |
|
|
|
.Pin = GPIO_PIN_2, |
|
|
|
.Mode = GPIO_MODE_ANALOG, |
|
|
|
.Pull = GPIO_NOPULL, |
|
|
|
.Speed = GPIO_SPEED_FREQ_LOW, |
|
|
|
}; |
|
|
|
HAL_GPIO_Init(GPIOA, &conf); |
|
|
|
} |
|
|
|
{ |
|
|
|
// GPIO
|
|
|
|
GPIO_InitTypeDef conf = { |
|
|
|
.Pin = GPIO_PIN_3, |
|
|
|
.Mode = GPIO_MODE_ANALOG, |
|
|
|
.Pull = GPIO_NOPULL, |
|
|
|
.Speed = GPIO_SPEED_FREQ_LOW, |
|
|
|
}; |
|
|
|
HAL_GPIO_Init(GPIOA, &conf); |
|
|
|
} |
|
|
|
|
|
|
|
ADC_Common_TypeDef *adc_common = ADC123_COMMON; |
|
|
|
ADC_TypeDef *adc1 = ADC1; |
|
|
|
// SET_BIT(adc_common->CCR, ADC_CCR_ADCPRE_0);
|
|
|
|
// CLEAR_BIT(adc_common->CCR, ADC_CCR_ADCPRE_1);
|
|
|
|
//
|
|
|
|
// CLEAR_BIT(adc1->CR1, ~ADC_CR1_RES_0);
|
|
|
|
// CLEAR_BIT(adc1->CR1, ADC_CR1_RES_1);
|
|
|
|
// SET_BIT(adc1->CR2, ADC_CR2_CONT);
|
|
|
|
// CLEAR_BIT(adc1->CR2, ADC_CR2_ALIGN);
|
|
|
|
// SET_BIT(adc1->CR2, ADC_CR2_ADON);
|
|
|
|
// SET_BIT(adc1->CR2, ADC_CR2_SWSTART);
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// SET_BIT(adc1->SQR1,ADC_SQR1_L_0);
|
|
|
|
//// CLEAR_BIT(adc1->SQR1,ADC_SQR1_L_1);
|
|
|
|
//// CLEAR_BIT(adc1->SQR1,ADC_SQR1_L_2);
|
|
|
|
//// CLEAR_BIT(adc1->SQR1,ADC_SQR1_L_3);
|
|
|
|
////
|
|
|
|
//// ADC_SQR3_RK(1,1);
|
|
|
|
// SET_BIT(adc1->SQR3,ADC_SQR3_SQ1_0);
|
|
|
|
//// CLEAR_BIT(adc1->SQR3,ADC_SQR3_SQ1_1);
|
|
|
|
//// CLEAR_BIT(adc1->SQR3,ADC_SQR3_SQ1_2);
|
|
|
|
//// CLEAR_BIT(adc1->SQR3,ADC_SQR3_SQ1_3);
|
|
|
|
//// CLEAR_BIT(adc1->SQR3,ADC_SQR3_SQ1_4);
|
|
|
|
|
|
|
|
hadc1.Instance = ADC1; |
|
|
|
hadc1.Instance = ADC2; |
|
|
|
hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; |
|
|
|
hadc1.Init.Resolution = ADC_RESOLUTION_12B; |
|
|
|
hadc1.Init.ScanConvMode = DISABLE; |
|
|
@ -284,29 +281,29 @@ void adc_init(void) |
|
|
|
} |
|
|
|
|
|
|
|
ADC_ChannelConfTypeDef sConfig = {}; |
|
|
|
sConfig.Channel = ADC_CHANNEL_14; |
|
|
|
sConfig.Channel = ADC_CHANNEL_1; |
|
|
|
sConfig.Rank = 1; |
|
|
|
sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES; |
|
|
|
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
|
|
|
|
// adc1->CR2
|
|
|
|
while (1) { |
|
|
|
// SET_BIT(adc1->CR2, ADC_CR2_ADON);
|
|
|
|
// SET_BIT(adc1->CR2, ADC_CR2_SWSTART);
|
|
|
|
HAL_ADC_Start(&hadc1); |
|
|
|
|
|
|
|
// heck_log("ADC123_COMMON->CCR:" + reg_to_string(adc_common->CCR));
|
|
|
|
// heck_log("ADC1->CR1:" + reg_to_string(adc1->CR1));
|
|
|
|
// heck_log("ADC1->CR2:" + reg_to_string(adc1->CR2));
|
|
|
|
// heck_log("ADC1->SQR1:" + reg_to_string(adc1->SQR1));
|
|
|
|
// heck_log("ADC1->SQR2:" + reg_to_string(adc1->SQR2));
|
|
|
|
// heck_log("ADC1->SQR3:" + reg_to_string(adc1->SQR3));
|
|
|
|
// heck_log("ADC1->DR:" + reg_to_string(adc1->DR));
|
|
|
|
heck_log("\n"); |
|
|
|
HAL_Delay(100); |
|
|
|
} |
|
|
|
// // adc1->CR2
|
|
|
|
// while (1) {
|
|
|
|
// // SET_BIT(adc1->CR2, ADC_CR2_ADON);
|
|
|
|
// // SET_BIT(adc1->CR2, ADC_CR2_SWSTART);
|
|
|
|
// HAL_ADC_Start(&hadc1);
|
|
|
|
//
|
|
|
|
// // heck_log("ADC123_COMMON->CCR:" + reg_to_string(adc_common->CCR));
|
|
|
|
// // heck_log("ADC1->CR1:" + reg_to_string(adc1->CR1));
|
|
|
|
// // heck_log("ADC1->CR2:" + reg_to_string(adc1->CR2));
|
|
|
|
// // heck_log("ADC1->SQR1:" + reg_to_string(adc1->SQR1));
|
|
|
|
// // heck_log("ADC1->SQR2:" + reg_to_string(adc1->SQR2));
|
|
|
|
// // heck_log("ADC1->SQR3:" + reg_to_string(adc1->SQR3));
|
|
|
|
// // heck_log("ADC1->DR:" + reg_to_string(adc1->DR));
|
|
|
|
// heck_log("\n");
|
|
|
|
// HAL_Delay(100);
|
|
|
|
// }
|
|
|
|
} |
|
|
|
|
|
|
|
void rng_init(void) |
|
|
@ -325,6 +322,6 @@ void heck_init() |
|
|
|
// heck_debug_suspend();
|
|
|
|
blinky_led_init(); |
|
|
|
dac_init(); |
|
|
|
// adc_init();
|
|
|
|
adc_init(); |
|
|
|
rng_init(); |
|
|
|
} |
|
|
|