您好,
如果您知道,请告诉我。
我正在将一个传感器连接到 cc2650,并创建一个无线传输该传感器数据的传感器。
目前,例如,如果您连接到 DIO28,是否有一个缓冲区自动保留 PIN 数据的特定值?
有人可以告诉我吗?
Rina
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.
你好,Rina,
请尝试重述您的问题,以便我更好地理解。 它将有助于提供更多详细信息,准确了解您正在尝试实现的目标以及阻止您实现此功能的原因。 我还建议您查看 数据表中的5.25 DC 特性, TRM 中的11个 I/O 控制以及 TI-RTOS 2.21.00.06文档中的 PIN.h TI 驱动程序 API。
此致,
瑞安
感谢你的回复。
我想创建一个具有以下两个函数的程序。
・我想捕获连接到 cc2650的 DIO28 PIN 的数据,间隔时间间隔要短于10毫秒
・我希望以80毫秒的间隔传输捕获的数据
我认为 ADC_CONVERT 函数只能获得当前的 AD 值。
但是,PIN 数据能否自动存储在特定缓冲区中? 我想。
此外,当我使用两个锁定功能创建上述两个程序时,该程序会冻结。
我对任何混淆表示歉意。
由于 IOID_28可用作模拟引脚,因此您需要确保它未在主板文件中为 ADC 功能进行初始化。 例如,LaunchPad 项目有一个 CC2650_LAUNCHXL.h, 其中 CC2650_LAUNCHXL_ADCName 与 CC2650_LAUNCHXL_ADC2和 Board_DIO28_ANALOG 枚举,在 ADCBFCC26XX_adcChannelLut, CC26xxHWAtts of CC2650_LAUNCHXL.C.中定义为引用 因此,如果使用引脚28作为数字输入/输出,则需要删除所有这些内容 您需要提供更多有关您的锁定功能和程序冻结的详细信息(可能包括代码)。
此致,
瑞安
感谢您的回复!
请告诉我更多信息
・DIO28由 LaunchPad.h 等定义
我想自动缓冲 DIO28 PIN 的传感器滴漏数据。
为此,很难单独使用现有程序。因此,您是否认识到需要编辑和使用启动板等中有关 PIN 的内容?
此外,我还创建了一个程序,以每天80毫秒的间隔读取和传输 AD 数据。
但是,80ms 间隔的传感器数据中没有任何意义。
我想要更多精确的传感器数据,所以我想知道 ADC 功能是否临时将滴漏数据存储在底座上。
(如果可能,我想用任务或锁定来控制它,但很难设置锁定,因为传输间隔和捕获希望间隔不同...
如果有传感器数据存储的位置,我会满怀希望地问我是否可以引用指针。)
或者,我认为我可以创建一个机制,通过多任务处理等,在未经许可的情况下以1毫秒的间隔捕获数据
如果您知道在编写这些计划时可能有帮助的任何材料,请告诉我。
(我不知道如何很好地编写多任务处理程序...)
非常感谢你们教我这么多东西!
ありがとう!
Rina
如果需要 DIO28作为模拟引脚,则现有 LaunchPad 主板文件正常。 您可以从初始化中删除其他 ADC 引脚,以释放特定引脚的资源。 有关 具有连续采样的 ADC 缓冲器,请参阅 ADCBuf.h; 《BIOS 用户指南 》和 SYS/BIOS API, 以进一步了解如何创建和控制多个任务。 ADC 示例 也将是一个很好的使用资源。
此致,
瑞安
第一个样本放置在 Buffer[0]中,第二个字节放置在 Buffer[1]中,依此类推。 回调用于处理填充后的缓冲区,缓冲区大小由开发人员定义。 由于采样频率也是确定的,回调频率也是已知的。 当 应用程序处理第一个缓冲区时,第二个缓冲区可以在 ADCBuf_Recurrence _mode_continuous 模式下填充,如 adcBufContinuousSampling 示例中所示。
此致,
瑞安
很抱歉,我对你说得不好。
下图显示了运行『adcBufContinu脆弱』的结果。
我们认识到,目前每个值都是一些 PIN 输出从 PIN23更改为 PIN30更改为 MV。
我想知道哪些数据按什么顺序和顺序存储 microVoltBuffer[i]。
我认为两个相关变量与完整信道/完整 ADCBuffer 相关。]
我认为 continuousConversion.adcChannel 指向 PIN 信息,但这是对的吗?
例如,在 DIO28 ADC_COMPB_IN_AUXIO2 0x0E 的情况下? 这就像认可吗?
我不确定这里的优点是什么。
请帮帮我…
ありがとう
Rina

你好,Rina,
对于 adcBufContinuousSampling,由于 ADCbuf_convert 的 channelCount 参数为1,因此只对 Board_DIO23_analog 进行采样。 要对 Board_DIO23_ANALOG 进行采样,您需要删除 adcCC26xxHWAttrs 的先前条目(如果未使用这些 ADC 引脚,则为最佳条目),或者将通道计数增加到6,在这种情况下,DIO28将是每第六次测量一次。
此致,
瑞安
感谢你的回复。
我尝试根据所学内容编写代码,但这种认可是否合适...?
我想要一个 μV 值,其中 DIO28/DIO29数据的采样频率为200Hz
已在多个位置更改 adcBufContinuousSampling
//**************************
//adcBufContinuousSampling.c.
//**************************
/*配置转换结构*/
continuousConversion.arg =空;
continuousConversion.adcChannel =主板_ADCBufChannel0;
continuousConversion.sampleBuffer = sampleBufferOne;
continuousConversion.sampleBufferTwo = sampleBufferTwo;
continuousConversion.samplesRequestedCount = ADCBUFFERSIZE;
如果(!adcBuf)为
system_abort ("adcBuf 未正确打开\n"\n);
}
/*开始转换。 *
如果(ADCBuf_convert (adcBuf,&continuousConversion,2)!=
ADCBUf_STATUS_SUCCESS){
system_abort (“未正确启动转换过程\n”);
}
//**************************
//CC2650_LAUNHHXL.c.
//**************************
const ADCbufCC26XX_AdcChannelLutEntry ADCbufCC26XX_adcChannelLutt[]={
{Board_DIO24_ANALOG,ADC_COMPB_IN_AUXIO6},
{Board_DIO25_ANALOG,ADC_COMPB_IN_AUXIO5},
//{PIN_unassigned,ADC_COMPB_IN_VDDS},
//{PIN_unassigned,ADC_COMPB_IN_DCOUPL},
//{PIN_unassigned,ADC_COMPB_IN_VSS},
//{Board_DIO23_ANALOG,ADC_COMPB_IN_AUXIO7},
//{Board_DIO26_ANALOG,ADC_COMPB_IN_AUXIO4},
//{Board_DIO27_ANALOG,ADC_COMPB_IN_AUXIO3},
//{Board_DIO28_ANALOG,ADC_COMPB_IN_AUXIO2},
//{Board_DIO29_ANALOG,ADC_COMPB_IN_AUXIO1},
//{Board_DIO30_ANALOG,ADC_COMPB_IN_AUXIO0},
};
const ADCBFCC26XX_HWAttrs adcBufCC26xxHWAttrs [CC2650_LAUNCHXL_ADCBFCOUNT]={.}
{
.intPriority =~0,
.sw优先 级=0,
.adcChannelLut = ADCBufCC26XX_adcChannelLut,
.gpTimerUnit =主板_gptimer0A,
.gptDMAChannelMask = 1 <<UDMA_CHAN_TIMER0_A,
}
};
//**************************
已将信道计数更改为2,并已注释出使用的非 DIO。
此时的结果是下图。
我在 DIO29[0],DIO28[0],DIO29[1],DIO28[1],DIO29[2],DIO29[2],DIO28[2]中有此序列... 我想它会像这样继续
但是,在执行结果中,设计为在 DIO28/DIO29中变为0的位置不符合预期。
这是因为我编写的代码中有错误吗?
帮助我,,,
Rina

抱歉...您非常仔细地教了我。
但是,我的理解不是很好,所以我希望你证实这一点。
以下内容是否合适?
・在默认样本中,仅对 DC_COMPB_IN_VDDS 数据进行采样和输出。
→从【ADCBuf_convert (adcBuf,&continuousConversion,1)转换的通道数】为1。
→执行后显示的数据总共为11个(CC2650_LAUNHXL_ADCCOUNT)变量,这些变量在【ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLutt[]】中定义。
但仅对 DC_COMPB_IN_VDDS 进行采样。
此外,ADC 和 ADCBuffer 之间值的位数的差异是因为 ADCBuffer 显示为 MV。
我的目标是 DIO28数据进入缓冲区。
即使我看了你告诉我的链接,我也无法理解
我想理解。
请...
Rina
我已将「adcbufcontinuous_CC2650_LAUNHXL_TI」从资源管理器加载到 Douun。
没有什么改变。
当我运行此程序时,屏幕上会以 MV 显示哪些信息?
但我不确定我是否看过很多东西。「adcChannel = Board_ADCCHANNEL_A1;」
什么表示缓冲? 那么,Buddy 是否随机包含 DIO23到 DIO30?
那么,您是否告诉我删除了您不使用的 PIN?
请告诉我。
Rina
随附的自述文件描述 了如何为 Board_ADCBuf0采集100个频率为500 Hz 的样本, 并 在 Board.h 中将 Board_ADCBufChannel0设置为零,该自述文件指向 ADCBFCC26XX_adcChannelLut 中的 ADC_COMPB_IN_VDDS。 此 E2E 线程中有一个公平的描述。 因此, 对于 Board_DIO28_ANALOG,应该将 Board_ADCBufChannel0更改为8。
此致,
瑞安