ADC转换启动ADC转换不是加个非号,竖杠是"或'运算符
是将寄存器的控制位 置 1
ADC_CONTR|=0x08, 相当于ADC_CONTR=ADC_CONTR|0x08,
0x08二进制是 0000 1000
就 是将ADC_CONTR的第4位(D3)置1,其它位不变,如下图该位正是启动ADC的控制位
1、ADC(AttackDamageCarry)
物理输出核心
定位:提供持续物理输出,另外由于绝大多数英雄技能无法作用于建筑,团战时ADC往往需保持自身存活至最后,以便在团战获胜后快速拆除敌方防御塔。
特点:多为远程(或者说只能是远程),基础射程一般在500以上,前中甚至后期均极度脆弱,缺少或完全没有控制、逃生技,但普通攻击带有控制或伤害效果。生存能力低下,极度依赖T及辅助的保护,但在存活的时间内可持续造成高额杀伤效果。是整个团队最重要也是最稳定的输出来源。
2、AD(AttackDamage,物理伤害)
普通攻击以及一部分英雄技能造成的伤害类型,可被护甲抵消。
3、AP(AbilityPower,法术伤害)
大部分英雄技能所造成的伤害类型,可被魔法抗性抵消。
/iknow-piccdnbceboscom/71cf3bc79f3df8dc25fa7a2cc311728b4610284c"target="_blank"title="大图"class="ikqb_img_alink">/iknow-piccdnbceboscom/71cf3bc79f3df8dc25fa7a2cc311728b4610284cx-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=">
我的理解是这样的:
我不知道ADC_TEMP 是否已经被初始化为零了。如果是,思路就是这样 0000 0000 0000 0000 0000 0000 这是ADC_temp,AD_DATA 应该就是采样的 每一位 的数 比如采样你说的 101101,其实应该把前面的0补齐,也就是0000 0000 0000 0000 0010 1101 。然后经过for循环,从第一位开始取,当遇到1的时候,执行ADC_temp|= 1; 我们知道或运算的规则,1和什么都是1。所以就从第一位0开始取,直到取完最后一位,每取一位左移一位,再和输出的AD_DATA 或运算。前提是,这个AD_DATA是高位输出。
自己设置的
DMA_BufferSize = 100; //传送内存大小,100个16位
DMA_Mode = DMA_Mode_Circular; //循环
这里我以 STC15 系列单片机介绍讲解
15 系列的 ADC 一般是使用P1口来实现的 P10 ~ P17 对应 AD1 ~ AD8
首先介绍一下结构,也是主要用单的寄存器
ADC_FLAG : 当 ad转换 完成之后,该标志位会变成 1 , 必须软件清零
ADC_START : ADC启动位 ,设置为 1 时开始转换,转换结束后为 0
ADRJ :用于控制 adc结果 存放位置
当 PADC 为 0 时, ad转换器 为最低优先级
当 PADC 为 1 是, ad转换器 为最高优先级
EADC 为 0 时,禁止 ad转换器 中断
EADC 为 1 时,允许 ad转换器 中断
ad转换器 ,转换完成之后会通知标志位 ADC_FLAG ,并且把结果储存 ADC_RES 和 ADC_RESL 中
根据配置的 ADRJ 的配置和公式获取结果
当 ADRJ = 0 如果取 10位结果 ,结果为: ADC_RES7~0,ADC_RESL1~0=1024xvin/vcc
当 ADRJ = 0 如果取 8位结果 ,结果为: ADC_RES7~0=256xvin/vcc
当 ADRJ = 1 如果取 8位结果 ,结果为: ADC_RES1~0,ADC_RESL7~0=1024xvin/vcc
CHS2~CHS0 来控制模拟通道的选择
如果电压是电池等不稳定电源,可以使用 TL431 可控精密电压源来作为参考基准。
TL431 是可控精密稳压源 可以精确控制 25v~36V 。
ADC 用于应用扫描按键,每 10ms 读取一次 ad 的值,但是只能检测单个按键, 多个组合按键无法识别
以上就是关于单片机ADC转换全部的内容,包括:单片机ADC转换、英雄联盟里面的ADC是什么意思、C语言实现ADC采样问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)