通过SPI发出两路ADC数据,通过FPGA读到的数据不对,请问为什么
7 天前 来自 jpknecoq 发布 @ 综合讨论
源码:
/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/
/* --- STC 8H1K08 QFN20 ADC & SPI Demo (简化版) --------------------*/
/*------------------------------------------------------------------*/
#define MAIN_Fosc 11059200L // 定义主时钟 11.0592MHz
#include "STC8Gxxx.h"
#include "intrins.h"
/************* 宏定义 **************/
#define FILTER_LENGTH 16 // 滤波器长度
#define SEND_INTERVAL 100 // 发送间隔(ms)
#define ADC_CLK_DIV 5 // ADC时钟分频(Fosc/2/6=921.6kHz)
/************* 变量声明 **************/
u16 ADC_Raw = {0}; // 初始化ADC数据存储
u16 ADC_Filtered = {0}; // 滤波后的ADC值
u8 filter_index = 0; // 滤波器索引
bit current_channel = 0; // 当前采样通道标志 0:P3.5, 1:P3.6
/************* 函数声明 **************/
void System_Init(void);
u16 Get_ADC10bitResult(u8 channel);
void SPI_SendData(u16 dat);
void ADC_Filter_Process(void);
void delay_us(u16 us);
void delay_ms(u16 ms);
/**********************************************/
void main(void)
{
u16 send_counter = 0;
System_Init();
/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/
/* --- STC 8H1K08 QFN20 ADC & SPI Demo (简化版) --------------------*/
/*------------------------------------------------------------------*/
#define MAIN_Fosc 11059200L // 定义主时钟 11.0592MHz
#include "STC8Gxxx.h"
#include "intrins.h"
/************* 宏定义 **************/
#define FILTER_LENGTH 16 // 滤波器长度
#define SEND_INTERVAL 100 // 发送间隔(ms)
#define ADC_CLK_DIV 5 // ADC时钟分频(Fosc/2/6=921.6kHz)
/************* 变量声明 **************/
u16 ADC_Raw = {0}; // 初始化ADC数据存储
u16 ADC_Filtered = {0}; // 滤波后的ADC值
u8 filter_index = 0; // 滤波器索引
bit current_channel = 0; // 当前采样通道标志 0:P3.5, 1:P3.6
/************* 函数声明 **************/
void System_Init(void);
u16 Get_ADC10bitResult(u8 channel);
void SPI_SendData(u16 dat);
void ADC_Filter_Process(void);
void delay_us(u16 us);
void delay_ms(u16 ms);
/**********************************************/
void main(void)
{
u16 send_counter = 0;
System_Init();
- 最近查阅:
免责声明:
本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;