打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】- 5:ADCC

[复制链接]
2654|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MianQi|  楼主 | 2021-8-19 10:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 MianQi 于 2021-8-19 10:39 编辑

Analog-to-Digital Converter with Computation (ADCC) - 带计算功能的模数转换
参考示例在这里:《TB3263 - Getting STarted with ADCC for PIC18


这次测试的板子是:PIC18F16Q41 Curiosity Nano。从第一印象来看,这块板子跟之前用过的PIC18F57Q40和PIC18F16Q40的区别在于其管脚的分布之整齐,直观地说,就是看上去比较轻松,不会眼花缭乱:

使用特权

评论回复
沙发
MianQi|  楼主 | 2021-8-19 10:39 | 只看该作者
本帖最后由 MianQi 于 2021-8-18 20:08 编辑

先看一下实验装置:


演示效果:

(RC1接板上自带的LED,负逻辑。在面包板上并联了一个LED,正逻辑。)


使用特权

评论回复
板凳
MianQi|  楼主 | 2021-8-19 10:39 | 只看该作者
本帖最后由 MianQi 于 2021-8-19 09:55 编辑

这是“main.c”:
#include "mcc_generated_files/mcc.h"

uint16_t volatile errVal;

void ThresholdISR(void);

/*
                         Main application
*/
void main(void)
{
    // Initialize the device
    SYSTEM_Initialize();
   
    INTERRUPT_GlobalInterruptEnable();
    //INTERRUPT_PeripheralInterruptEnable();
    ADCC_SetADTIInterruptHandler(ThresholdISR);
    ADCC_DischargeSampleCapacitor();
    ADCC_StartConversion(channel_ANC0);

    // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
    // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global Interrupts
    // Use the following macros to:

    // Enable the Global Interrupts
    //INTERRUPT_GlobalInterruptEnable();

    // Disable the Global Interrupts
    //INTERRUPT_GlobalInterruptDisable();

    while (1)
    {
        // Add your application code
    }
}

void ThresholdISR(void)
{
    errVal = ADCC_GetErrorCalculation();
    PIR1bits.ADIF = 0;
    LATCbits.LATC1 = !LATCbits.LATC1;
}

使用特权

评论回复
地板
MianQi|  楼主 | 2021-8-19 10:39 | 只看该作者
本帖最后由 MianQi 于 2021-8-19 09:56 编辑

以下是一些设置页面:









使用特权

评论回复
5
MianQi|  楼主 | 2021-8-19 10:39 | 只看该作者
本帖最后由 MianQi 于 2021-8-19 09:49 编辑

前边提到的例程是不能直接用地,要结合datasheet“PIC18F0616Q41-1420-Pin-Low-Power-High-Performance-Microcontroller-with-XLP-Technology-Data-Sheet-40002214D.pdf”和MCC生成的文件一起看。

比如,这里的寄存器位名:


这里的函数:


以及例程本身第15页的“Arc Right Shift”,结合MCC页面才知道应该是“Acc Right Shift”:


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:所有未经解决的问题都一般大。

30

主题

383

帖子

3

粉丝