12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #include "api.h"
- #include "api_rt_adc.h"
- #include "gd32f30x.h"
- Adc_Handle Adcs[2];
- void AdcLow_Init(void)
- {
- // ADC0 Regular
- Adcs[0].AdcBase = ADC0;
- Adcs[0].DmaBase = DMA0;
- Adcs[0].DmaChannelBase = DMA_CH0;
- for (int i = 0; i < ADC_RESULT_SIZE; i++)
- {
- Adcs[0].Results[i] = 0;
- }
- // ADC0 Injected
- Adcs[1].AdcBase = ADC0;
- for (int i = 1; i < ADC_RESULT_SIZE; i++)
- {
- Adcs[1].Results[i] = 1;
- }
- // ADC1 Injected
- Adcs[2].AdcBase = ADC0;
- for (int i = 0; i < ADC_RESULT_SIZE; i++)
- {
- Adcs[2].Results[i] = 0;
- }
- };
- //void AdcLow_CompleteIsr(uint8_t devIndex);
- uint16_t iAdc_GetResult(uint8_t devIndex, uint8_t channelIndex)
- {
- // ASSERT_LESS(devIndex, 1);
- return Adcs[devIndex].Results[channelIndex];
- }
- uint16_t* iAdc_GetResultPointer(uint8_t devIndex)
- {
- // ASSERT_LESS(devIndex, 1);
- return Adcs[devIndex].Results;
- }
- void iAdc_Enable(uint8_t devIndex)
- {
- // ASSERT_LESS(devIndex, 1);
- if(RESET == (ADC_CTL1(devIndex) & ADC_CTL1_ADCON)){
- ADC_CTL1(devIndex) |= (uint32_t)ADC_CTL1_ADCON;
- }
- }
- void iAdc_Disable(uint8_t devIndex)
- {
- // ASSERT_LESS(devIndex, 1);
- ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_ADCON);
- }
- ApiAdc_Status iAdc_GetStatus(uint8_t devIndex)
- {
- if (ADC_STAT(devIndex) & ADC_STAT_EOC != 0)
- {
- return Adc_End;
- }
- else
- {
- return Adc_Converting;
- }
- }
- void iAdc_Convert(uint8_t devIndex)
- {
- //for regular only
- ADC_CTL1(devIndex) |= ADC_CTL1_SWRCST;
- }
- void iAdc_ChannelGroupSwitch(uint8_t devIndex, uint8_t groupIndex)
- {
- }
- void iAdc_EnableConversionInterrupt(uint8_t devIndex)
- {
- }
- void iAdc_EnableHardwareTrigger(uint8_t devIndex);
- void iAdc_DisableHardwareTrigger(uint8_t devIndex);
|