工具/软件:Code Composer Studio
大家好、
我必须找到导通时间为400ms 的连续斜坡脉冲的最大值和最小值,并且必须将该最小值和最大值存储在500索引的数组中,任何人都能帮助我。 我从 ADC 和 comp 获取2个样本
#include #include include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_sysctl.h" #include "inc/hw_types.h" #include "driverlib/hw_gpio.h" #include "driverlib/driver/hex/drivers/drivers/drivers/#include "drivers/drivers/drivers.lib" #drivers/drivers/drivers/htm#include "drivers/htm#drivers/htm#include "util.h" #include "drivers/drivers/htm#include "drivers/drivers/htm#drivers/htm#include "drivers/htm#include "drivers/htm#include "drivers/htm#/htm#include "drivers/htm#include "drivers/htm#defintrl.lib.h 声明开始/////////////////////////////////////////////////////////////////////////////// const int sampleFreq = 150000、ref=2240; uint32_t ADC0Value、Present、ADC[5]、AMP_ADC、max_ADC[500]、min_ADC[500]、System_Clock、Present、ADCsample、AMPLE_ADCsample; uint16_t SamplePeriod、i; uint32_t ui32Period、pcount=0、ncount=0、mutmaxvalue_adc、mutmaxvalue_adc、presminvalue_adc、adc_MaxValue、adc_Minool、min; uint32_t l=0、k=0 、presminvalue_adc、separp; bool max; void systemsetup (void); //void PWM_Enable (void); void 计时器(void); void ADC (void); void Interrupt_Enable (void); //////////////////////// 声明结束//////////////////////// void systemsetup (void) { SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHz|SYSCTL_OSC_MAIN); MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB); MAP_GPIOPinTypeGPIOOutput (GPIO_PORTB_BASE、GPIO_PIN_5); MAP_GPIOPinWrite (GPIO_PORTB_BASE、GPIO_PIN_5、0); System_Clock=SysCtlClockGet ();// 40MHz STATUS=0; 最大值= 0; nextsample=0; } void ADC0SS3IntHandler (void) { AST_ADCSAMPLE=Present ADCsample; ROM_ADCSequenceDataGet (ADC0_BASE、3、ADC0Value); ROM_ADCIntClear (ADC0_BASE、3); if (max=0) { Prese_ADCsample=ADC0Value; if (nextsample) { 最大值= 1; STATUS=1; } } nextsample = 1; if (状态) { if (Present (Present) ADCsample>Past (过去) ADCsample) { //前推 maxvalue_adc= maxpresvalue_adc; maxpresevalue_adc=prese_adcsample; // if (presmaxvalue_adc>premaxvalue_adc) // { ADC_MaxValue=presentmaxvalue_adc; //} AMPLE_ADCSAMPLE=0; Prese_ADCsample=0; nextsample = 0; Max=0; } 其他 { //前推 minvalue_adc=presminvalue_adc; presminvalue_adc=prese_adcsample; // MIN=Present;ADCsample; // if (presminvalue_adc挑战他们。 但我没有得到结果。