Может не хочет из-за того что указана символьная переменная char, смените на беззнаковое число unsigned int... Си язык требующий всяческих приведений переменных.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Если мне память не изменяет, то объявление всех переменных в С, производится в основном теле программы. А не вне этого тела
int main(void){
static unsigned int a;
unsigned int b; и пр
}
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Meteor писал(а):Если мне память не изменяет, то объявление всех переменных в С, производится в основном теле программы. А не вне этого тела
int main(void){
static unsigned int a;
unsigned int b; и пр
}
Да ничего подобного, если делать так, то переменная будет действовать только в пределах функции main, т.е. та что в обработчике будет вообще не объявлена и копмилятор будет ругаться!!
-==MAXCELERON==- писал(а):
Да ничего подобного, если делать так, то переменная будет действовать только в пределах функции main, т.е. та что в обработчике будет вообще не объявлена и копмилятор будет ругаться!!
Неправильный вопрос, откуда бы он мог знать что gcc/винавр в погоне за оптимизацией физически удаляет переменные если они не меняются в основном коде, а функция прерывания из мэйна не вызывается соотв переменная для компилятора выглядит как константа.
neonix писал(а):Дык собственно я и хотел попытатся заствить узнать почему не работало Ибо бездумное следование советам опыта не прибавит )
Не надо никого заставлять, он и так все правильно делает. Я с этими переменными неделю промучался пока не догадался заглянуть в ассемблер который гцц сгенерил, фишка в том что обычно компиляторы так не делают.
neonix писал(а):Дык собственно я и хотел попытатся заствить узнать почему не работало Ибо бездумное следование советам опыта не прибавит )
Не надо никого заставлять, он и так все правильно делает. Я с этими переменными неделю промучался пока не догадался заглянуть в ассемблер который гцц сгенерил, фишка в том что обычно компиляторы так не делают.
На самом деле довольно многие компиляторы примерно так поступают, просто большинство из них не знакомо "широкой общественности", ведь основная масса программистов пишут программы на ПК и под ПК, а там такой проблемы нет. Ну а вообще, если программа ведёт себя странным образом, очень полезно не гадать, а сразу же смотреть, какой ассемблерный код был получен. Иногда, например, он попросту неверный из-за ошибок в компиляторе. Естественно, это относится к любому языку программирования на любой платформе -- совершенных вещей, увы, не существует.