查看: 2598|回复: 3
|
[求助]PIC BASIC PRO - 2's compliment 的编辑方式
[复制链接]
|
|
本帖最后由 tjtan81 于 14-3-2010 12:40 AM 编辑
i. 你要想做什么? 你的应用是什么?
想做个显示器,显示学生比赛的赛果。答对加三分;答错减一分
ii. 你想要拿到什么效果
成绩可以是正值或负值。
iii. 你做了什么
可以说已完成70%,朋友该 REQUIREMENT,今天测试时才发现问题。
iv. 你遇到了什么问题。
现在暂时设定成绩是 -99 至 +199(之前是 -99 至 99)。用到 2's compliment。我的 CODING 成功显示/计算正与负值,问题出现在于当我本来的 VALUE 是 NEGATIVE 而在特定的分数要加分时,分数会直跳 POSITIVE VALUE,而不是正确的 VALUE,相反的,当 certain +VALUE 减分是,+VALUE 会变 NEGATIVE。Eg:-90+1,成绩应该是 -89 但我的 code 却显示 POSITIVE VALUE.
v. 你用什么MCU?
PIC 16F877(主机-做计算) + PIC 16F84(旧的,显示成绩,几个队伍就几个板)。 用 SERIN2 & SEROUT2 做联系。
vi. 你用什么语言? ASM /C/PICBasic/Keil?Compiler 版本?
Pic Basic Pro 2.45
vii. 有源码吗? 如是抄来的请注明出处, 请放链接。
主要 2's compliment 的 code:
IF ((counter1 & %10000000) == $80) Then
n_value = 1
value = counter1 ^ %11111111
value = value + 1
GoSub bin2seg
ENDIF
本想 CHECK STATUS.0(CARRY BIT)[不知对不对,不对请指教]但一直都失败了,所以就想用以上的方法。(本来的成绩是 -99 to 99,所以以上的 CODE 是没问题的,但过后却加到要 200 分,所以现在在头疼要怎么写)
现在 +value>128, 成绩会变成 negative,就连 negative value 要加分时都有问题。
viii. 有电路图吗?
还没画出来。
ix. 你google 了吗? 你的搜索关键字是什么?
google 了,搜索 2's compliment/programming method.....
x. 有照片证明你做的东西吗?还是只是概念性的空谈?
现在还没,但若有需要,近期会 POST 上来。
谢谢各位。 |
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 14-3-2010 09:48 AM
|
显示全部楼层
回复 1# tjtan81
counter1 你用8bits variable?
换去16bits.
如果是c program. 直接declare 成signed int/short就可以了。自动2's compliment.
basic没有吗? |
|
|
|
|
|
|
|
楼主 |
发表于 14-3-2010 10:19 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 14-3-2010 11:05 AM
|
显示全部楼层
回复 3# tjtan81
问题很仔细。这样就可以比较快看得出你的问题在哪里。
很好。 模范贴之一。
既然没有16bits sign,你要在coding下苦功咯。。。呵呵。加油。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|