اطلاعیه

Collapse
No announcement yet.

عدد اعشاری در printf

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

    عدد اعشاری در printf

    سلام دوستان
    چجوری باید در printfاعدد اعشاری بریزم

    #2
    پاسخ : عدد اعشاری در printf

    سلام

    میتونی همیشه از تابع sprintf استفاده کنی:
    [code=c]
    sprintf(str, "data= %.4f",data)
    [/code]

    و بعد با دستور print رشته رو ( در اینجا str) ارسال کنی

    دیدگاه


      #3
      پاسخ : عدد اعشاری در printf

      تشکر بابت راهنماییتون
      اما deep:4fمیاد روی صحفه

      کد:
      /*****************************************************
      This program was produced by the
      CodeWizardAVR V2.05.3 Standard
      Automatic Program Generator
      © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
      http://www.hpinfotech.com
      
      Project : 
      Version : 
      Date  : 12/3/2014
      Author : Techno-Electro
      Company : If You Like This Software,Buy It
      Comments: 
      
      
      Chip type        : ATmega8
      Program type      : Application
      AVR Core Clock frequency: 16.000000 MHz
      Memory model      : Small
      External RAM size    : 0
      Data Stack size     : 256
      *****************************************************/
      
      #include <mega8.h>
      #include <delay.h>
       #include <ctype.h>
      float a;
      int set;
       char str[5];
      // External Interrupt 0 service routine
      interrupt [EXT_INT0] void ext_int0_isr(void)
      {
      
       a++;
      }
      
      // External Interrupt 1 service routine
      interrupt [EXT_INT1] void ext_int1_isr(void)
      {
      a--;
      if(a<=0){
      a=0;
      }
      
      }
      
      // Standard Input/Output functions
      #include <stdio.h>
      
      // Declare your global variables here
      
      void main(void)
      {
      // Declare your local variables here
      
      // Input/Output Ports initialization
      // Port B initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTB=0x00;
      DDRB=0x00;
      
      // Port C initialization
      // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTC=0x00;
      DDRC=0x00;
      
      // Port D initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTD=0x00;
      DDRD=0x02;
      
      // Timer/Counter 0 initialization
      // Clock source: System Clock
      // Clock value: Timer 0 Stopped
      TCCR0=0x00;
      TCNT0=0x00;
      
      // Timer/Counter 1 initialization
      // Clock source: System Clock
      // Clock value: Timer1 Stopped
      // Mode: Normal top=0xFFFF
      // OC1A output: Discon.
      // OC1B output: Discon.
      // Noise Canceler: Off
      // Input Capture on Falling Edge
      // Timer1 Overflow Interrupt: Off
      // Input Capture Interrupt: Off
      // Compare A Match Interrupt: Off
      // Compare B Match Interrupt: Off
      TCCR1A=0x00;
      TCCR1B=0x00;
      TCNT1H=0x00;
      TCNT1L=0x00;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;
      
      // Timer/Counter 2 initialization
      // Clock source: System Clock
      // Clock value: Timer2 Stopped
      // Mode: Normal top=0xFF
      // OC2 output: Disconnected
      ASSR=0x00;
      TCCR2=0x00;
      TCNT2=0x00;
      OCR2=0x00;
      
      // External Interrupt(s) initialization
      // INT0: On
      // INT0 Mode: Rising Edge
      // INT1: On
      // INT1 Mode: Rising Edge
      GICR|=0xC0;
      MCUCR=0x0F;
      GIFR=0xC0;
      
      // Timer(s)/Counter(s) Interrupt(s) initialization
      TIMSK=0x00;
      
      // USART initialization
      // Communication Parameters: 8 Data, 1 Stop, No Parity
      // USART Receiver: Off
      // USART Transmitter: On
      // USART Mode: Asynchronous
      // USART Baud Rate: 9600
      UCSRA=0x00;
      UCSRB=0x08;
      UCSRC=0x86;
      UBRRH=0x00;
      UBRRL=0x67;
      
      // Analog Comparator initialization
      // Analog Comparator: Off
      // Analog Comparator Input Capture by Timer/Counter 1: Off
      ACSR=0x80;
      SFIOR=0x00;
      
      // ADC initialization
      // ADC disabled
      ADCSRA=0x00;
      
      // SPI initialization
      // SPI disabled
      SPCR=0x00;
      
      // TWI initialization
      // TWI disabled
      TWCR=0x00;
      
      // Global enable interrupts
      #asm("sei")
        
      
      while (1)
         {
         // Place your code here 
         set=toascii(12); 
            putchar(set);  
            a=a/7.69; 
            sprintf(str,"Deept:%.4f",a);
            puts(str);
            
            
            delay_ms(500);
      
         }
      }

      دیدگاه


        #4
        پاسخ : عدد اعشاری در printf

        اگر از کدویژن استفاده میکنی باید بری توی این قسمت :

        project configure > C compiler > (s)printf features > Set to "float , width , presision "
        http://massoud68.persiangig.com/pict...1406891613.gif

        مشکلتون حل شده ؟؟؟
        پس روي "موضوع به نتيجه رسيد" کليک کنيد !! :job:

        دیدگاه


          #5
          پاسخ : عدد اعشاری در printf

          من شمارنده با اینتراپت نوشتم که وقتی پالس بالا رونده میاد یک شماره بندازه ایا توی برنامه متغییری رو اشتباه تعریف کردم

          [code=c]
          #include <mega8.h>
          #include <delay.h>
          #include <ctype.h>
          #include <stdio.h>
          float a;
          int set;
          char str[5];
          // External Interrupt 0 service routine
          interrupt [EXT_INT0] void ext_int0_isr(void)
          {

          a++;
          }

          // External Interrupt 1 service routine
          interrupt [EXT_INT1] void ext_int1_isr(void)
          {
          a--;
          if(a<=0){
          a=0;
          }

          [/code]

          دیدگاه


            #6
            پاسخ : عدد اعشاری در printf

            اینم از while

            [code=c]
            set=toascii(12);
            putchar(set);
            a=a/7.69;
            sprintf(str,"Deept:%f",a);
            puts(str);


            delay_ms(500);

            [/code]

            دیدگاه


              #7
              پاسخ : عدد اعشاری در printf

              .

              دیدگاه


                #8
                پاسخ : عدد اعشاری در printf

                به نتیجه رسیدم دست همگی درد نکنه

                دیدگاه

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