اطلاعیه

Collapse
No announcement yet.

مشکل با sprintf در atmel studio !

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل با sprintf در atmel studio !

    سلام!
    بعد از تلاشهای فراوان نحوه استفاده از دستور sprintf رو توی atmel studio فهمیدم ! حالا با کدهای زیر که خیلیم خوب کار میکنه متاسفانه یه مشکله بزرگ دارم!
    هر تابعیرو که توی while تابع main و یا حتی اول تابع فراخوانی میکنم متاسفانه usart متوقف میشه م دیگه چیزی سند نمیکنه ! متاسفانه نمیدونم این مشکل از چیه حسابی داره آزارم میده ! از دوستان کسی به winavr مسلط هست ؟ کدمو میزارم :

    کد:
    
    void USART_Init( unsigned int ubrr)
    {
    	UBRRH = (unsigned char)(ubrr>>8);
    	UBRRL = (unsigned char)ubrr;
    	UCSRB = (1<<RXEN)|(1<<TXEN);
    	UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
    }
    
    void USART_Transmit( unsigned int data )
    {
    
    	while ( !( UCSRA & (1<<UDRE)) );
    	UDR = data;
    }
    
    
    static int uart_putchar(char c, FILE *stream);
    
    static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL,_FDEV_SETUP_WRITE);
    
    static int uart_putchar(char c, FILE *stream)
    {
    
    	if (c == '\n')
    	uart_putchar('\r', stream);
    	loop_until_bit_is_set(UCSRA, UDRE);
    	UDR = c;
    	return 0;
    }
    
    int main(void)
    {
    	USART_Init(MYUBRR );
      char buff[100];
    	double arash=121.2;
    	stdout = &mystdout;
    	while(1){
      sprintf(buff,"%f",arash);
    		puts(buff);
    	}
    }
    مثلا تابعی مثل تابع زیر با فراخوانی در تابع main موجب توقف کار میشه!
    کد اصلیه بنده ستاپ اولیه سنسور mpu6050 با i2c هست که حتی این تابعروهم نمیتونم فراخوانی کنم !
    کد:
    void nothing(){
    while(1){
    arash+=1;
    }

    #2
    پاسخ : مشکل با sprintf در atmel studio !

    امیدوارم این تاپیکی که لینک شو میذارم کمکت بکنه:
    http://www.eca.ir/forum2/index.php?topic=95914.0

    دیدگاه


      #3
      پاسخ : مشکل با sprintf در atmel studio !

      نوشته اصلی توسط سینا_80
      امیدوارم این تاپیکی که لینک شو میذارم کمکت بکنه:
      http://www.eca.ir/forum2/index.php?topic=95914.0
      مرسی از کمکت دوست عزیز ولی متاسفانه مطالب اون تاپیگ ربطی به مشکل من نداهر :(

      دیدگاه


        #4
        پاسخ : مشکل با sprintf در atmel studio !

        دوستان کسی به مشکل من بر نخورده ؟؟ کسی راه حلی میدونه ؟ ظاهرا مشکل با تعریف استراکچر FDEV هست ولی نمیدونم دقیقا باید چیکار کنم ! کدمو میتونین اینجا ببینین :
        https://github.com/arashkhajooei/USARTlib/blob/master/Sprintf%20function%20!
        این کد کاملا درست کار میکنه بدون مشکل منتها اگه تابعی رو توی تابع MIAN فراخوانی کنم رابط سریال متوقف میشه و دیگه چیزی ارسال نمیشه ! دیگه دارم دیوونه میشم تروخدا یکی کمک کنه :angry: :angry:

        دیدگاه

        لطفا صبر کنید...
        X