Thread 中讨论的其他器件: SYSBIOS、 CC2640R2F
大家好、团队成员
非常感谢您的回复、很抱歉您的回复很晚、
我正在尝试使用 CC2650 和 DS600+实现 ADC 概念、但 对此我有一些疑问
/*
*版权所有(c) 2016、德州仪器(TI)公司
*保留所有权利。
*
*以源代码和二进制形式重新分发和使用、有无
*如果满足以下条件、则允许进行修改
符合*:
*
**源代码的重新分发必须保留上述版权
*注意、此条件列表和以下免责声明。
*
**二进制形式的再发行必须复制上述版权
*请注意、中的此条件列表和以下免责声明
*随分发提供的文档和/或其他材料。
*
**德州仪器公司的名称和名称均不相同
*其贡献者可用于认可或推广衍生产品
*未经特定的事先书面许可。
*
*本软件由版权所有者和贡献者"按原样"提供
*以及任何明示或暗示的保证、包括但不限于:
*特定适销性和适用性的隐含保证
*不承认目的。 在任何情况下、版权所有者不得或
*派遣国应对任何直接、间接、偶然、特殊、
*典型或必然的损害(包括但不限于
*采购替代货物或服务;丧失使用、数据或利润;
*或业务中断)、无论原因是什么以及任何责任理论、
*无论是合同、严格责任还是侵权行为(包括疏忽或)
*否则)因使用本软件而以任何方式产生、
*即使被告知可能会发生此类损坏。
*
/*
*==== adcsinglechane.c ===
*
/* XDCtools 头文件*/
#include
#include
/* BIOS 头文件*/
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
/*驱动程序头文件*/
#include
#IF 定义(CC2650DK_7ID)||定义(CC1310DK_7xD)
#include
#endif
/*示例/板头文件*/
#include "Board.h"
#define ADC_CONV_MIN_VAL 1200
#define ADC_CONV_MAX_VAL 4095
#define COLOW_TEMP_MIN 2500
#define COLOW_TEMP_MAX 3500
#define ADC_celcius_CONV_const 509
/* ADC 采样数*/
#define ADC_SAMPLE_COUNT (10)
/*特定于任务的定义*/
#define TASKSTACKSIZE (768)
Task_Structtask0Struct;
char task0stack[TASKSTACKSIZE];
/*引脚驱动器手柄*/
静态 PIN_Handle 按钮 PinHandle;
/* PIN_Config 表的全局存储器*/
静态 PIN_STATE 按钮 PinState;
//温度传感器相关变量声明
/* ADC 转换结果变量*/
uint16_t adcValue1[50]={0};
const float ADC_conv_volT_const = 0.293040;
const float ADC_cel_conv_const = 6.45;
无符号长整型电压= 0;
float cel = 0;
int g_Celsius [50]={0};
/*
*应用按钮引脚配置表:
*-按钮中断配置为在下降沿触发。
*
PIN_Config buttonPinTable[]={Board_DIO21 | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVSTR_MAX、PIN_TERMINATE};
/*
*==== taskFxn1 ===
*打开一个 ADC 句柄,然后获取一组采样结果
*调用多个转换。
*
void taskFxn0 (void)
{
/* ADC 引脚的电路板初始化*/
Board_initadc();
ADC_Handle ADC;
ADC_Params 参数;
int_fast16_t res;
char currVal = 0;
字符 I = 0;
//清除缓冲区
对于(i = 0;i<50;i++)
{
G_Celsius [i]= 0;
adcValue1[i]= 0;
}
PIN_setOutputValue (buttonPinHandle、Board_DIO21、currVal);//温度传感器处于活动状态
ADC_PARAMS_INIT (params);
ADC = ADC_open (Board_ADC0、params);
如果(ADC ==空)
{
System_abort ("初始化 ADC 通道1\n"\n 时出错);
}
其他
{
system_printf ("ADC 通道1已初始化\n"\});
}
ADC_Close (ADC);
}
/*
*==== main ====
*
int main (空)
{
Task_Params taskParams;
/*呼叫板初始化函数*/
Board_initGeneral();
buttonPinHandle = PIN_OPEN (buttonPinState、buttonPinTable);
if (!buttonPinHandle){
System_abort ("初始化按钮引脚时出错\n");
}
/*创建任务*/
Task_Params_init (&taskParams);
taskParams.STACKSIZE = TASKSTACKSIZE;
taskParams.stack =_task0Stack;
Task_construct(&task0Struct,(Task_FuncPtr) taskFxn0、&taskParams、NULL);
/* SysMin 仅在您调用 flush 或 exit 时才会打印到控制台*/
system_flush();
BIOS_start();
返回(0);
}
这是我在这里的代码、我在 RES = ADC_convert (ADC、&adcValue1[i])中没有得到准确的结果;但是我正在正确获得 adcValue1、您能给我提供帮助吗? 我非常热情地学习它