Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос к знатокам по stdio.h
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
megaloki
Извините если что но все же. решыл попробовать переназначить ввод-вывод через функции printf scanf

Переписал либы так:
size_t __write(int Handle, const unsigned char * Buf, size_t Bufsize)
{
int nChars = 0;
/* Check for stdout and stderr
(only necessary if file descriptors are enabled. */

if (Handle != 1 && Handle != 2)
{
return -1;
}

for (/*Empty */; Bufsize > 0; --Bufsize)
{
lcd_putchar(Buf[nChars]);
nChars++;
}
return nChars;

}

size_t __read(int Handle, unsigned char * _Buf, size_t size)
{
int nChars = 0;

/* Check for stdout and stderr
(only necessary if file descriptors are enabled. */
/*
if (Handle != 1 && Handle != 2)
{
return -1;
}
*/
for (/* Empty */; size > 0; --size)
{
int c = read_char_USART1();
if (c < 0){
_Buf[nChars]=0;
break;
}

*_Buf++ = c;
++nChars;
}
return nChars;
}

В функции main() написал так:
__no_init char buffer [MAX_BUFFER_LENGTH + 1];
int i;

for(;;)
{

lcd_clear();
temp=scanf("%i",&i);
if (temp==0) scanf("%s",buffer);
printf("%i",i);
i=0;buffer[0]=0;
lcd_gotoxy(0,1);
printf("sca=%i",temp);
Delay_ms(1000);
}

Функция ввода читает символы с юсарта и выводит их на ЖК дисплей. Вроде все пашет но как только я ввожу число из 3 однаковых цифр (например 222) то на дисплей выводится 22 и вывод прекращаэтся тоесть если я ввожу 1234 то все ок.

Подскажыте в чом косяк... help.gif help.gif help.gif
AVR
Извините за оффтоп, вопрос почти по теме:
В CrossWorks есть такая волшебная функция debug_printf, которая выводит текст в окошечко в CW через JTAG. Можно ли подобное организовать в среде IAR? rolleyes.gif
jack_avenger
Цитата(AVR @ Nov 12 2006, 22:19) *
Извините за оффтоп, вопрос почти по теме:
В CrossWorks есть такая волшебная функция debug_printf, которая выводит текст в окошечко в CW через JTAG. Можно ли подобное организовать в среде IAR? rolleyes.gif

Точно "почти по теме". В ИАРе для АВР можно было, думаю и для АРМов тоже есть. Но в таком случае будут замещены отлаживаемые низкоуровневые функции.
megaloki
w00t.gif Все всем спасибо проблема решылась. Просто при вводе с USART была слишком велика погрешность и при 3х однаковых посилках всплывал старшый бит..........
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.