打印

PICC编译器编译switch语句

[复制链接]
3489|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mugangzhu|  楼主 | 2010-10-21 08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
switch(x)
{
   case 1:..........break;
   case 2:..........break;
     .
     .
     .
   case 45:.........break;
}
编译器PICC9.70,
编译出来功能不正常编译没有提示错误,减少到case 36就正常,是编译器的问题还是怎么回事?芯片用16f883
沙发
machunshui| | 2010-10-21 08:44 | 只看该作者
PICC9.70 不成熟,
建议换PICC9.80或者9.71,
或者更老的版本.

使用特权

评论回复
板凳
mugangzhu|  楼主 | 2010-10-21 08:48 | 只看该作者
能否提供一种那种编译软件?谢谢,我的邮箱是976611799@qq.com,谢谢

使用特权

评论回复
地板
machunshui| | 2010-10-21 09:58 | 只看该作者
自己到MICROCHIP网站下载啊

使用特权

评论回复
5
mugangzhu|  楼主 | 2010-10-21 11:33 | 只看该作者
换了9.71a编译器编译好像也不行的啊

使用特权

评论回复
6
aaa2742| | 2010-10-21 15:48 | 只看该作者
你判断的太多了吧,用MCC18试试

使用特权

评论回复
7
martin| | 2010-10-21 17:43 | 只看该作者
PICC Pro 9.80,MPLAB IDE 8.50,PIC16F883测试编译正常,软件模拟正常。附测试代码及反汇编代码:
1:                 #include <pic.h>
2:                 
3:                 unsigned char Index;
4:                 
5:                 void main(void)
6:                 {
7:                 Index = 0;
   786    01F0     CLRF 0x70
8:                 PORTC = 0;
   787    0187     CLRF 0x7
9:                 TRISC = 0;
   788    1683     BSF 0x3, 0x5
   789    0187     CLRF 0x7
10:                ADCON1 = 0x06;
   78A    3006     MOVLW 0x6
   78B    009F     MOVWF 0x1f
11:                        while(1)
12:                        {
13:                        Index+=1;
   7EA    0AF0     INCF 0x70, F
14:                        if(Index>45) Index = 0;
   78C    2FEA     GOTO 0x7ea
   78D    01F0     CLRF 0x70
   78E    2FEF     GOTO 0x7ef
   7EB    302E     MOVLW 0x2e
   7EC    0270     SUBWF 0x70, W
   7ED    1803     BTFSC 0x3, 0
   7EE    2F8D     GOTO 0x78d
15:                        switch(Index)
   002    118A     BCF 0xa, 0x3
   7EF    0870     MOVF 0x70, W
   7F0    3EFF     ADDLW 0xff
   7F1    1C03     BTFSS 0x3, 0
   7F2    2FEA     GOTO 0x7ea
   7F3    0084     MOVWF 0x4
   7F4    302D     MOVLW 0x2d
   7F5    0204     SUBWF 0x4, W
   7F6    1803     BTFSC 0x3, 0
   7F7    2FEA     GOTO 0x7ea
   7F8    3000     MOVLW 0
   7F9    008A     MOVWF 0xa
   7FA    1003     BCF 0x3, 0
   7FB    0D04     RLF 0x4, W
   7FC    3E02     ADDLW 0x2
   7FD    0082     MOVWF 0x2
   7FE    118A     BCF 0xa, 0x3
   7FF    2800     GOTO 0
16:                                {
17:                                case 1: PORTC = 1; break;
   78F    3001     MOVLW 0x1
   790    2FE8     GOTO 0x7e8
18:                                case 2: PORTC = 2; break;
   791    3002     MOVLW 0x2
   792    2FE8     GOTO 0x7e8
19:                                case 3: PORTC = 3; break;
   793    3003     MOVLW 0x3
   794    2FE8     GOTO 0x7e8
20:                                case 4: PORTC = 4; break;
   795    3004     MOVLW 0x4
   796    2FE8     GOTO 0x7e8
21:                                case 5: PORTC = 5; break;
   797    3005     MOVLW 0x5
   798    2FE8     GOTO 0x7e8
22:                                case 6: PORTC = 6; break;
   799    3006     MOVLW 0x6
   79A    2FE8     GOTO 0x7e8
23:                                case 7: PORTC = 7; break;
   79B    3007     MOVLW 0x7
   79C    2FE8     GOTO 0x7e8
24:                                case 8: PORTC = 8; break;
   79D    3008     MOVLW 0x8
   79E    2FE8     GOTO 0x7e8
25:                                case 9: PORTC = 9; break;
   79F    3009     MOVLW 0x9
   7A0    2FE8     GOTO 0x7e8
26:                                case 10: PORTC = 10; break;
   7A1    300A     MOVLW 0xa
   7A2    2FE8     GOTO 0x7e8
27:                                case 11: PORTC = 11; break;
   7A3    300B     MOVLW 0xb
   7A4    2FE8     GOTO 0x7e8
28:                                case 12: PORTC = 12; break;
   7A5    300C     MOVLW 0xc
   7A6    2FE8     GOTO 0x7e8
29:                                case 13: PORTC = 13; break;
   7A7    300D     MOVLW 0xd
   7A8    2FE8     GOTO 0x7e8
30:                                case 14: PORTC = 14; break;
   7A9    300E     MOVLW 0xe
   7AA    2FE8     GOTO 0x7e8
31:                                case 15: PORTC = 15; break;
   7AB    300F     MOVLW 0xf
   7AC    2FE8     GOTO 0x7e8
32:                                case 16: PORTC = 16; break;
   7AD    3010     MOVLW 0x10
   7AE    2FE8     GOTO 0x7e8
33:                                case 17: PORTC = 17; break;
   7AF    3011     MOVLW 0x11
   7B0    2FE8     GOTO 0x7e8
34:                                case 18: PORTC = 18; break;
   7B1    3012     MOVLW 0x12
   7B2    2FE8     GOTO 0x7e8
35:                                case 19: PORTC = 19; break;
   7B3    3013     MOVLW 0x13
   7B4    2FE8     GOTO 0x7e8
36:                                case 20: PORTC = 20; break;
   7B5    3014     MOVLW 0x14
   7B6    2FE8     GOTO 0x7e8
37:                                case 21: PORTC = 21; break;
   7B7    3015     MOVLW 0x15
   7B8    2FE8     GOTO 0x7e8
38:                                case 22: PORTC = 22; break;
   7B9    3016     MOVLW 0x16
   7BA    2FE8     GOTO 0x7e8
39:                                case 23: PORTC = 23; break;
   7BB    3017     MOVLW 0x17
   7BC    2FE8     GOTO 0x7e8
40:                                case 24: PORTC = 24; break;
   7BD    3018     MOVLW 0x18
   7BE    2FE8     GOTO 0x7e8
41:                                case 25: PORTC = 25; break;
   7BF    3019     MOVLW 0x19
   7C0    2FE8     GOTO 0x7e8
42:                                case 26: PORTC = 26; break;
   7C1    301A     MOVLW 0x1a
   7C2    2FE8     GOTO 0x7e8
43:                                case 27: PORTC = 27; break;
   7C3    301B     MOVLW 0x1b
   7C4    2FE8     GOTO 0x7e8
44:                                case 28: PORTC = 28; break;
   7C5    301C     MOVLW 0x1c
   7C6    2FE8     GOTO 0x7e8
45:                                case 29: PORTC = 29; break;
   7C7    301D     MOVLW 0x1d
   7C8    2FE8     GOTO 0x7e8
46:                                case 30: PORTC = 30; break;
   7C9    301E     MOVLW 0x1e
   7CA    2FE8     GOTO 0x7e8
47:                                case 31: PORTC = 31; break;
   7CB    301F     MOVLW 0x1f
   7CC    2FE8     GOTO 0x7e8
48:                                case 32: PORTC = 32; break;
   7CD    3020     MOVLW 0x20
   7CE    2FE8     GOTO 0x7e8
49:                                case 33: PORTC = 33; break;
   7CF    3021     MOVLW 0x21
   7D0    2FE8     GOTO 0x7e8
50:                                case 34: PORTC = 34; break;
   7D1    3022     MOVLW 0x22
   7D2    2FE8     GOTO 0x7e8
51:                                case 35: PORTC = 35; break;
   7D3    3023     MOVLW 0x23
   7D4    2FE8     GOTO 0x7e8
52:                                case 36: PORTC = 36; break;
   7D5    3024     MOVLW 0x24
   7D6    2FE8     GOTO 0x7e8
53:                                case 37: PORTC = 37; break;
   7D7    3025     MOVLW 0x25
   7D8    2FE8     GOTO 0x7e8
54:                                case 38: PORTC = 38; break;
   7D9    3026     MOVLW 0x26
   7DA    2FE8     GOTO 0x7e8
55:                                case 39: PORTC = 39; break;
   7DB    3027     MOVLW 0x27
   7DC    2FE8     GOTO 0x7e8
56:                                case 40: PORTC = 40; break;
   7DD    3028     MOVLW 0x28
   7DE    2FE8     GOTO 0x7e8
57:                                case 41: PORTC = 41; break;
   7DF    3029     MOVLW 0x29
   7E0    2FE8     GOTO 0x7e8
58:                                case 42: PORTC = 42; break;
   7E1    302A     MOVLW 0x2a
   7E2    2FE8     GOTO 0x7e8
59:                                case 43: PORTC = 43; break;
   7E3    302B     MOVLW 0x2b
   7E4    2FE8     GOTO 0x7e8
60:                                case 44: PORTC = 44; break;
   7E5    302C     MOVLW 0x2c
   7E6    2FE8     GOTO 0x7e8
61:                                case 45: PORTC = 45; break;
   7E7    302D     MOVLW 0x2d
   7E8    1283     BCF 0x3, 0x5
   7E9    0087     MOVWF 0x7
62:                                }
63:                        }       
64:                       
65:                        }

使用特权

评论回复
8
machunshui| | 2010-10-22 10:14 | 只看该作者
顶顶!

好多人出了问题,
就到处怀疑,

自己写个验证代码,
什么都明白了!

使用特权

评论回复
9
zdhlixiang2006| | 2010-10-24 10:04 | 只看该作者
是不是case太多了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝