Не мудрствуя лукаво STDIN и STDOUT перенаправил в UART.
Кстати не в аппнотах ни в доках на иар, ни где нет описания этого механизма, впрочем..
функция getchar() и putchar() юзаемая и в printf/scanf в результате
попадает на __read () __write(), благо описание нашёл по поиску ...
переписал на хендлы STDOUT и STDERR вывод в уарт , здесь всё запиписечно и функционирует... однако с __read() полный пЭ.
во первых
вот такая конструкция
int __read(int h, unsigned char *buf, int size )
{
char chsize = 0;
unsigned char Byte;
if ( h == stdin ){
// printf ("__read(,,%d)",size);
// разкоментировав строку мы получаем байт с уарта с задержкой на 1
// тоесть 1 передаём 'Q' результат getсhar () = 0х00
// 2 передаём 'W' результат getсhar () = 'Q'
// убрав printf Ни чего не считываем

далее там ниже...
for (;;--size) {
while(!readUART(&Byte)); /// await
*buffer++ = Byte;
chsize++;
}
return chsize;
} else
return ERR;
}
main () {
....
char _b;
while (1){
_b = getchar(); // здесь трабл , gets (char * ) тоже ни когда не возвращается... по \n
putchar(_b);
}
....
}
К сожалению жтаг не прикручивал , исходников всей цепочки getchar -> getc(FILE*, BYTE) ->... хз -> __read() нет....
что делать ?
где граблю искать ?
Сенькс...
ЗЫ не конечно отказаться от getchar() putchar () можно, но как же с редиректом файлового чтения / записи быть, функция должна работатть
2. чтение из уарта проверено - пропусков / ошибок нет....
--- 30.08.2005 "Хроники Риддика" поговорил сам с собой...
в общем вниматочное изучение даташита на иар с его перекрёстным маразмом ... для начала буферизации в нутри... определено и подтверждено. тепрь осталось эксперементальным путём, а другого не вижу определить параметры линковки длибов ...
Вообще самый простой писать свой вывод на консоль, но планируется реализовать нормальные функции и открывать как файлы так и порты стандартными методами... Как только разберусь с этим добавлю сюда.
Кстати заинстили и кейл а там проще, всё значительнее проще, что было ясно и по предыдущим проектам на 51 платформе..
Удачи.
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!