1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
HII已经为旧的复古电脑做了一个适配器。适配器采用数字信号,并用电阻和晶体管将它们转换为模拟信号。该适配器在计算机中确实工作,但是由于我要大量生产这些适配器,我需要一个独立的适配器测试器,因此我不必每次构建新的适配器时都启动计算机。计算机有6个模拟输入:J1X、J1Y、J1Fire、J2X、J2Y、J2Fire。X和Y可以是0V,2.5V(“空闲”)或5V。火灾可以是0V或5V。适配器提供这些电压,保证。没有引脚浮动。使用PIC16F886和XC8,我做了一个小程序,它除了一个具有6个A/D转换的循环之外什么都不做,并且根据输入点亮LED。LED对应于J1UP、J1DUN、J1Lead、J1Wrand、J1XIDLE、J1YIDLE、J1FARE,J2是相同的。因此,总共有14个LED。PIC在31 KHz的ItoSc上运行,因为我真的不需要这里的高速。但是,程序并不像预期的那样运行。我怀疑在切换通道时使用Tad和A/D采集时间失败,但是即使我把延迟放大到5秒钟,读数仍然很差。对于每一个通道。启动时的预期行为是四个空闲的LED被点亮,没有别的,但是几乎所有的LED(除了空闲的LED)都以某种模式闪烁,并且我不能找到原因。我在这里附加源代码,希望任何人能够指出错误。我花了5个多小时的调整,试图找出错误,所以我在这一点上失明。谢谢。
|
|
相关推荐
3个回答
|
|
Hi.没有查看细节,但是注意到您正在使用精确的值来解析ADC结果。这样您的代码就会受到操纵杆一侧的噪声和糟糕的硬件质量的影响。我将在解析中添加两件事。评价.2-在决定能级跃迁时产生一些滞后效应,使用不同的值来决定低>高跃迁和高>低跃迁。
|
|
|
|
另请注意。您正在PORTx寄存器上以快速顺序设置/清除各个位,这可能是导致最棘手的R-M-W问题。使用变量进行位操作,然后整体更新PORT寄存器。
|
|
|
|
您的电路设计和应用程序代码有问题。PIC16F86在GPIO引脚上具有ADC输入:RA0、RA1、RA2、RA3、RA5、RB2、RB3、RB1、RB4、RB0、RB5。分别为AN0、AN1、AN2、AN3、AN4、AN8、AN9、AN10、AN11、AN12、AN13。你有一个模拟信号源(I0)连接到RA4,这是一个数字输入。您发布的代码似乎假定所有的POPGA GPIO引脚都可以作为ADC输入。它们不是。您将需要使用至少一个来自PoTB的GPIO引脚作为ADC输入。
|
|
|
|
只有小组成员才能发言,加入小组>>
5242 浏览 9 评论
2031 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3207 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2256 浏览 5 评论
778浏览 1评论
669浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
596浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
679浏览 0评论
577浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 23:24 , Processed in 1.279884 second(s), Total 79, Slave 63 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号