ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
18911 Топик полностью
Сергей Борщ (21.12.2004 17:06, просмотров: 3) ответил hamray на Как в IAR AVR перенаправить вывод printf в UART?
Ответ: 
int putchar ( int i )           
{
 switch (CharType)
 {
  case LittleChar:
		LCDWriteLittleChar(i);
		break;
  case MediumChar:
		LCDWriteMediumChar(i);
		break;
  case BigChar:
		LCDWriteBigChar(i);
		break;
  case IRDA:
                if(i == 0xa) PutSirChar ( 0xd );
                PutSirChar ( i );
                break;
  default:	

		do ; while (!(UART(USART_TCTL)&_TxEmpty));
		if(i!=0xBF)
		 UART(USART_TXBUF)=i;
		else
		 UART(USART_TXBUF)=0xFF;	//replace 0xbf by я in strings
		break;
 }
 return(i);
}
Вывод:
void DispValue ( float value )
{
 CharType = LittleChar;
 if ( Config.Units == EnglishUnits ) {
  printf(TextAtLanguage(&Th_Cond_msg_i),File.Thickness/mmtomils,File.Conductivity/(50.0/86.0));
 } else {
  printf(TextAtLanguage(&Th_Cond_msg_m),File.Thickness,File.Conductivity);
 }
 
 CharType = MediumChar;
 if ( Config.Alarm ) puts("\x81   ");
 else puts("        ");
 DispDig(value);