Цитата(andron86 @ Mar 3 2006, 01:11)

Но я сам не пойму, почему у меня такие глюки - толи getchar()(uVison2) глючит, толи контроллер??? по идее достаточно:
Код
unsigned char cmd;
for(xTemp = 0; xTemp<8; xTemp++)
{
cmd = getchar();
if(cmd==0xff){ temp2[i]=cmd; break;}
temp1[count]=cmd;
}
Вы в stdio.h давно не заглядывали?
Там можно найти строчки, которые заставят задуматься:
#ifndef EOF
#define EOF (-1)
#endif
...........
int getchar(void);
Это значит, что функция getchar() возвращает значение типа
int, ну так опишите свою переменную как
int и используйте символическое имя EOF чтобы не морочить себе голову тонкостями преобразования типов и способов представления отрицательных чисел.
Ещё полезно почитать какой-нибудь учебник по языку С, да вот хотя-бы K&R, в первой-же главе (цитата):
Основная проблема заключается в том, чтобы зафиксировать конец файла ввода. Обычно, когда функция getchar наталкивается на конец файла ввода, она возвращает значение, не являющееся действительным символом; таким образом, программа может установить, что файл ввода исчерпан. Единственное осложнение, являющееся значительным неудобством, заключается в существовании двух общеупотребительных соглашений о том, какое значение фактически является признаком конца файла. Мы отсрочим решение этого вопроса, использовав символическое имя EOF для этого значения, каким бы оно ни было.
...................
Использование символической константы EOF для представления значения, возвращаемого функцией getchar при выходе на конец файла, гарантирует, что только одна величина в программе зависит от конкретного численного значения.
Мы также описали переменную 'c' как
int, а не
char, с тем чтобы она могла хранить значение, возвращаемое getchar . Как мы увидим в главе 2, эта величина действительно int, так как она должна быть в состоянии в дополнение ко всем возможным символам представлять и EOF .