完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ADUC7061如果我设置DAC值,P0口设置成GPIO和模拟输入,本来是两个互相没关联的功能模块,居然会出错。
GP0KEY1 = 0x7; GP0CON1 = 0x1; GP0KEY2 = 0x13; ADUC7061将PO口设置成模拟输出,就是GP0CON1 = 0x1;,设置成GPIO,就是GP0CON1 = 0x0. 问题是这样的,如果我设置DAC为0.6V, SetDacInmv(600); while(1) { T2CLRI = 0x55; GP0KEY1 = 0x7; GP0CON1 = 0x1; GP0KEY2 = 0x13; DelayMs(5); GP0KEY1 = 0x7; GP0CON1 = 0x0; GP0KEY2 = 0x13; DelayMs(5); } 将P0口交替设置为GPIO和模拟端口。 就会发现: 1. 如果采用DEBUG进入,然后单步或者RUN模式执行。用示波器看DAC输出,结果是一条直线,即直流电压,0.6V。 2.如果下载FLASH,不要连JLINK,或者ULINK,然后上电发现示波器输出是个方波,0.9V和0.6V之间切换。 延时够长,不存在建立时间的问题。更何况,是方波,不是缓慢上升或下降。 问题是:如果说24位ADC不正常,是JLINK或者ULINK的问题,那么脱离了JLINK或ULIKN, DAC就不正常工作。 问题是:究竟是调试器有问题呢?还是ADIC芯片有问题呢?看DAC输出,似乎是调试器的复位或者初始化行为,修复了ADCI芯片的BUG. 当然,如果没有调试器,这个芯片,总是无法正确输出DAC的,在P0设置为模拟输入的时候。 当然,我现在只是好奇,问一下。我通过这段时间调试,发现ADI芯片是不可靠的,低级错误太多,而且售后环节不顺畅,打算换GD32F150+外置ADC方案。 |
|
相关推荐
1个回答
|
|
根据给出的信息,ADUC7061芯片设置P0口为GPIO和模拟输入时会报错。这可能是因为在设置GPIO和模拟输入之前,需要先解除特殊功能寄存器(GP0KEY1和GP0KEY2)的保护。正确的操作顺序应该是先设置GP0KEY1和GP0KEY2,然后再设置GP0CON1。例如:
GP0KEY1 = 0x7; GP0KEY2 = 0x13; GP0CON1 = 0x1; 这样就可以成功设置P0口为模拟输入。 同样的道理,要设置P0口为GPIO,也需要解除保护,并按正确的顺序进行设置。例如: GP0KEY1 = 0x7; GP0KEY2 = 0x13; GP0CON1 = 0x0; 这样就可以成功设置P0口为GPIO。 建议仔细检查设置DAC值和P0口功能的顺序是否正确,并确保在设置P0口功能前解除保护。此外,也要确保其他相关寄存器和配置正确,以避免出错。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11771 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:22 , Processed in 0.656938 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号