Цитата(wmakc @ Jun 18 2011, 15:34)

переменная unsigned char num = 1;
меняю на unsigned char num = 2;
Иногда помогает взять старый проект и скопировать в него основной файл с main.
Обычно, если действительно хочется получить помощь, соискатель сообщает не только как объявляется переменная,
но и *где* объявляется, и как она используется. То есть увидеть бы кусочек кода, сказать чего б было проще.
Да и мысли излагать бы пояснее: зачем чего-то копировать в старый проект?
Вы, вероятно догадываетесь, что показанные Вами конструкции вида
"unsigned char num = 1;"
тыщи программёров использовали по стопицот раз и, стало быть, дело не в них.
Весьма не исключено, что Вы её, конструкцию, используете хитрым способом
и, например, отыскали баг линкера, связанный, скажем, с выравниванием или инициализацией статиков.