-
额,其实我是在找AVR的short branch的跳转范围是多少的。看到了你的帖子,就研究了一会儿。。。PS:我使用的是ICC,ICC的调用是使用软件堆栈。没有那么直接,另外,我也没有仿真器,所以只能理论推理。{:1_85:}
-
额,或许我能解决你的疑问。首先跳转的时候为什么是PC=PC+2+2。。
你是知道的AVR能够实现一级流水-指令预取。也就是执行当前指令的时候预先读取下一条指令,那么PC中保存的是预取的指令。当你执行call的时候,是不会立即跳转的,它是先执行完PC指针中的指令,然后入栈,入栈完毕,进行跳转。入栈也就是取下一条指令。当他执行完PC指向的指令的时候PC就自动+2了。然后取下条指令入栈再+2也就是这样了。你为什么要执行完PC指向的指令才能入栈呢?很明显那条指令是预取的如果直接跳转,那么就相当于只是预取了并没有执行。这是我的理解
再说为什么SP中保存的数据时PC的1/2。这个也很好理解。你是知道的AVR指令双字节对齐。有四字节指令多数是长跳转指令-高字是跳转指令,低字是跳转到的地址。无论怎样都是双字节对齐。根据手册的解释。PC的6-0位表示页内地址。每页128字,256字节。对于AVR64有256个页,那么14-7表示页地址。虽然是6个位地址空间,但是累加起来正好满足。128的Flash扩展使用到了rampz。屏蔽掉rampz之后和64一样。再说为什么是双倍的关系。,PC中始终保存的是字地址,所以入栈之后你看到的就是字地址。但是你仿真读取出来的是字节地址。是编译环境显示的字节地址。。
OK,我觉得我的解释还算合理。看了手册之后也没什么纰漏。
-
其实这个题目没想的那么简单,覆铜板的电阻只有几十毫欧姆,相信欧姆定律吧。串联电阻不能加的太大,对角电压转换测量,而且很负责的说地线接一根和接两根效果是完全不同的,就算是导线的电阻都会影响测量结果,哪怕是地线也是有电阻的。。。所以我很体谅硬件的工作。至少这能力超出了队友硬件制作能力。整个硬件基本都是老班做的。多么想他们硬件提前一天做出来。- -我就有一天的软硬联调,而不是5分钟。。。我能力有限,1-2行的代码肯定存在bug,虽然我仔细推理了好几遍。。。我特别佩服老班,很厉害。尤其是低功耗设计仅仅0.8w。。。。。
-
手写板题目,老师和队友很给力,。我是写程序的,直到封箱去参赛的前1小时硬件问题还没解决。程序,单测画圆,画点,显示都无问题。从开始到最后,我洋洋洒洒写了2K行代码。最后只用半个小时测了张表烧尽flash,测试了五分钟就去比赛了。我能说些什么呢?
-
对于您对四轴飞行器的预测,本人感觉不是那么靠谱,我个人觉得穿洞应该不会出现的,如果穿洞,那么设计多大的洞直径呢?这个管道是直筒的呢还是有好几个拐弯呢?管道是自己设计呢还是组委会固定场所呢?(自己设计的难度可想而知--长度,直径,材料,透明否,)如何检测飞行器碰撞到洞壁呢?个人感觉精度(高度,方位)精确悬停还是有可能的(当然了只是基本要求),使用遥控器应该是不允许的,个人感觉光电开关也不会应用到飞行器上,毕竟50*50的四边长度需要安装几个光电开关呢?超声测距应该会出现。。。个人意见,如果过激,请见谅谢谢。。