报的错误是 MAIN.C(270): error C175: 0x1: duplicate case value
查了下说是重复定义。 可明明case的答案都是不一样的。 求大神解答下
不要在数字前加上0,否则表示这是一个8进制的数字。
#include <key_copy_lesson1.h>
unsigned char read_keyboard(void)
{
unsigned char Key_new;
unsigned char key_val;
P44 = 0; P42 = 1; P35 = 1; P34 = 1; //第1列
Key_new = P3;
P44 = 1; P42 = 0;
Key_new = (Key_new<<4) | (P3&0X0F); //第2列
P42 = 1; P35 = 0;
Key_new = (Key_new<<4) | (P3&0X0F); //第3列
P35 = 1; P34 = 0;
Key_new = (Key_new<<4) | (P3&0X0F); //第4列
switch(~Key_new)
{
case 0x8000: key_val = 4; break;
case 0x4000: key_val = 5; break;
case 0x2000: key_val = 6; break;
case 0x1000: key_val = 7; break;
case 0x0800: key_val = 8; break;
case 0x0400: key_val = 9; break;
case 0x0200: key_val = 10; break;
case 0x0100: key_val = 11; break;
case 0x0080: key_val = 12; break;
case 0x0040: key_val = 13; break;
case 0x0020: key_val = 14; break;
case 0x0010: key_val = 15; break;
case 0x0008: key_val = 16; break;
case 0x0004: key_val = 17; break;
case 0x0002: key_val = 18; break;
case 0x0001: key_val = 19; break;
default: key_val = 0;
}
return key_val;
}
显示错误:
key_copy_lesson1.c(23): error C175: 0x0: duplicate case value
那我的呢?