ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
37970
Ken@t (26.08.2005 12:53, просмотров: 1201)
Иар 4.11 и STDIN & STDOUT грабли... + Не мудрствуя лукаво 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. чтение из уарта проверено - пропусков / ошибок нет....