This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C123GH6PM:实现数字滤波器时出现问题

Guru**** 2479895 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/698201/tm4c123gh6pm-problem-to-implement-digital-filter

器件型号:TM4C123GH6PM
include "stdbool.h"
#include "stdint.h"
#include "driverlib/gpio.h"
#include "driverlib/rom_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/hw_memmap.h"
#include "driver.h"











#define "driver.h"#include "driver.h"driver.h"#define "driver.h"#include "driverlib.md#define "driver.h"#include "driver.h"#define "driver.h"#include "driver.h"#include "driver.h"#define "driver.h"#include "driver.h"#define "driver.h"#define "driver.h"#include "driver.h"#define "driver.h"#include "driver.h"#define "driver.h"#include "driverintrintrintrintrintrl.md.md.md.md.md.inc"#define #define #define #define #include "driver.h
0x00000802

#define GPIO_PA3_SSI0FSS 0x00000C02

#define GPIO_PA4_SSI0TX 0x00001002

#define GPIO_PA5_SSI0RX 0x00001402
const double Cofireffs32[3]={
0.33、0.33、0.33

};
void MT_ADCConfigure (void);
uint32_t pui32ADC0Value[2];
void DAC_LDAC (void);
//uint32_t ui32Period;
//uint32_t ui32SysClock;
uint32_t pui32DataTx;
float xval[3]、DAC_count;
浮点和、温度、电压;
uint32_t ui32SysClock;

int main (void)
{
int i、k;

SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz);
ui32SysClock = SysCtlClockGet ();
MT_ADCConfigure();
MT_SSIConfigure();
for (i=0;i<3;i++)
{
xval[i]=0;
}

while (1)
{
ADCProcessorTrigger (ADC0_BASE、3);

while (!ADCIntStatus (ADC0_BASE、3、false))
{
}

ADCIntClear (ADC0_BASE、3);
ADCSequenceDataGet (ADC0_BASE、3、pui32ADC0Value);
// xval[0]=*pui32ADC0Value;
volature=(* pui32ADC0Value* 3.3)/4096;
xval[0]=电压;
总和= 0;
for (k=0;k<3;k++)

{

temp =(xval[k])*(firCoeffs32[k]);

总和=总和+温度;

}

(i=3;i>0;i--)

{

xval[i]= xval[i-1];

}

DAC_count=(sum*1000);
pui32DataTx=DAC_COUNT;
SSIDataPut (SSI0_BASE、pui32DataTx);
while (SSIBusy (SSI0_BASE))
{
}
// MAP_GPIOPinWrite (GPIO_PORTB_BASE、GPIO_PIN_5、0);
SSIIntClear (SSI0_BASE、SSI_RXFF);
SysCtlDelay (10);

}
}
void MT_SSIConfigure()
{
SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA4_SSI0TX);
GPIOPinConfigure (GPIO_PA5_SSI0RX);
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2);
SSIConfigSetExpClk (SSI0_BASE、SysCtlClockGet ()、SSI_FRF_MOTO_MOTO_MODE_3、
SSI_MODE_MASTER、10000、12);
SSIEnable (SSI0_BASE);
}

void MT_ADCConfigure()
{
SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3);
ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_PROCESSOR、0);
ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH0 | ADC_CTL_IE |
ADC_CTL_END);
ADCSequenceEnable (ADC0_BASE、3);
ADCIntClear (ADC0_BASE、3);
} 

我必须使用 msp4921 DAC 实现数字滤波器 ektm4cgxl 套件。 它不起作用、请建议修改。

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Gurpreet、

    遗憾的是、我们不是数字信号处理专家、而是 TM4C 器件的专家。 我认为这不是我们能够提供任何真正指导的领域。 如果您对 TM4C 外设有不同的问题、但由于创建数字滤波器是特定于应用的、此主题超出了我们在此论坛上所能提供的支持范围。

    尽管如此、我们确实有一些社区成员、他们可能对该主题具有专业知识。 也许如果您分享一些有关您尝试实施的滤波器以及发生了什么错误的详细信息、他们可能会选择介入并提供帮助。 他们往往希望在评论之前获得更清晰的图片、因此您最好添加更详细的信息。

    祝您好运!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Gurpreet、

    当您拒绝了我之前所说的 TM4C MCU 以外的问题时、您能否详细说明您正在寻求的 TM4C 专业知识、因为我不清楚这是目前 TM4C 特定问题的具体原因?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可能希望指定要实施的数字滤波器、或者更好地指定要实现的数字滤波器。

    ARM 提供一组 DSP 库、其中包含各种可用作您起点的滤波器。