Цитата(Anub @ Aug 4 2008, 11:42)

При запуске я получаю результат проверки условия в функции check, т. е. sf==1, и по идее было вызвано прерывание по приему символа, это как так, у меня нога RXD в воздухе весит...
Вот и зря она в воздухе висит. Наводки на нее могу действовать.
Далее, в функции check неплохо бы обнулять флаг sf, если он был равен 1.
Символы заключается не в двойные кавычки, а в апострофы. Примерно так должна выглядеть Ваша функция.
Код
void check(void)
{
if (sf)
{
sf = 0;
char c;
c=getchar();
if (c == '')
{
PORTA=0x0B;
} else {
PORTA=0x07;
}
}
}
Выбор.