اطلاعیه

Collapse
No announcement yet.

نمایش اطلاعات خروجی 2 سنسور دما

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

    نمایش اطلاعات خروجی 2 سنسور دما

    با سلام
    چگونه میتوان اطلاعات 2 سنسور دمایی که از طریق پورت سریال به کامپیوتر میفرستیم را به صورت 2 ستون که مثلا داده های سنسور 1در ستون 1 و داده های سنسور دوم در ستون دوم قرار گیرد.
    با تشکر

    #2
    پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

    خواهشا کمک!!!!!!!!!!!

    دیدگاه


      #3
      پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

      سلام دوست عزیز سوالت خیلی کلیه برای این کار بایدتوسط یک زبان برنامه نویسی مثلا C# برای پورت سریال برنامه بنویسی بعد اونجا داده هات و جدا کنی اما اگر از HYPERTERMINAL میخوای استفاده کنی باید داخل برنامت یه همچین چیزی بنویسی :
      کد:
      [left]
      printf("temp1\t");
      printf("temp2\r\n");
      [/left]
      این کد و اگر داخل یک حلقه اجرا کنی فکر کنم همونی باشه که شما میخوای
      موفق باشید

      دیدگاه


        #4
        پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

        ممنون ولی میشه بیشتر توضیح بدی من با کدویزن کار میکنم و میخوام اطلاعات به صورت ستونی روی هم قرار بکیرند.

        دیدگاه


          #5
          پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

          یا اینکه ان را به صورت 2 ماتریس در متلب در بیاورم.

          دیدگاه


            #6
            پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

            ببین برای هر کلید کنترلی کاراکتر اسکی وجود دارد که دز زیر میتونی لیست اونارو ببینی:

            حالا اگر در داخل برنامه بعد از هر خط مثلا بخوای کلید enter زده بشه که مکان نما به اول سطر بره از n\ استفاده میشه حالا برای برنامه مد نظر شما میتونی کداتو اینجوری بنویسی:
            کد:
            [left]
            while(1){
            temp1=read_adc(0);
            delay_ms(1);
            temp2=read_adc(1);
            itoa(temp1,stemp1); 
            itoa(temp2,stemp2);
            puts(stemp1);
            printf("\t");"
            puts(stemp2);
            printf("\r\n");
            
            
            }
            [/left]
            دز برنامه بالا تابع itoa برای تبدیل int به رشتس و در هدر stdlib.h قرار داره البته برنامه بالا و میشه با دیگر توابع هدر stdio در یک خط نوشت اما من جدا جدا نوشتم که بهتر درک شه.

            دیدگاه


              #7
              پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

              سلام عرفان خان آفا ممنون خیلی لطف کردی یه سوال دیگه هم داشتم انم اینکه میخوام اطلاعات سنسورم موقعی به کامپیوتر ارسال بشه که من کلید اینتر یا کلید سمت چپ موس را کلید کنم انموقع اطلاعاتم با یک حلقه for فرستاده بشه اگر اینم یه راهنمایی کوچک کنی ممنونت میشم.

              دیدگاه


                #8
                پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                سلام خواهش میکنم دوست عزیز
                برای این کار باید ابتدا گیرنده usart میکرو فعال کنی و میتونی از وقفه گیرنده استفاده کنی,داخل وقفه یک بافر وجود داره طول بافر و تنظیم کنی روی 2 سپس در داخل برنامت یک شرط بزاری که مثلا وقتی کاراکتر کنترلی n\ که نشانه کلید enter است زده شده برنامه داخل یک حلقه قرار بگیره مثلا:
                کد:
                [left]
                while(1){
                if(rx_buffer=="\n")
                {
                for(i=0;i<2;i++)rx_buffer[i]=0;
                while(1)
                {
                temp1=read_adc(0);
                delay_ms(1);
                temp2=read_adc(1);
                itoa(temp1,stemp1); 
                itoa(temp2,stemp2);
                puts(stemp1);
                printf("\t");"
                puts(stemp2);
                printf("\r\n");
                if(rx_buffer=="\n")
                {
                for(i=0;i<2;i++)rx_buffer[i]=0;
                break;
                }
                }
                }
                }
                [/left]
                در این برنامه با زدن یکبار کلید enter داده شروع به ارسال و با زدن entrer دوم ارسال متوقف میشود

                دیدگاه


                  #9
                  پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                  واقعا ممنون حالا یه سوال پیش میاد چگونه n را به enter ربط بدم چون قبلا از put_char استفاده میکردم ولی استفاده کردن از وقفه گیرنده رو بلد نیستم.

                  دیدگاه


                    #10
                    پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                    یعنی این n را در متغیر ها چگونه تعریف کنم مثل put_char که مثلا e را char تعریف میکردی بعد put_char استفاده میکنی.

                    دیدگاه


                      #11
                      پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                      داش عرفان این برنامه منه به نظرت مشکلش کجاست؟
                      /************************************************** ***
                      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/15/2014
                      Author : hossein mozafari
                      Company :
                      Comments:


                      Chip type : ATmega32
                      Program type : Application
                      AVR Core Clock frequency: 11.059200 MHz
                      Memory model : Small
                      External RAM size : 0
                      Data Stack size : 512
                      ************************************************** ***/

                      #include <mega32.h>
                      #include <stdlib.h>
                      #include <delay.h>

                      // Alphanumeric LCD functions
                      #include <alcd.h>

                      #ifndef RXB8
                      #define RXB8 1
                      #endif

                      #ifndef TXB8
                      #define TXB8 0
                      #endif

                      #ifndef UPE
                      #define UPE 2
                      #endif

                      #ifndef DOR
                      #define DOR 3
                      #endif

                      #ifndef FE
                      #define FE 4
                      #endif

                      #ifndef UDRE
                      #define UDRE 5
                      #endif

                      #ifndef RXC
                      #define RXC 7
                      #endif

                      #define FRAMING_ERROR (1<<FE)
                      #define PARITY_ERROR (1<<UPE)
                      #define DATA_OVERRUN (1<<DOR)
                      #define DATA_REGISTER_EMPTY (1<<UDRE)
                      #define RX_COMPLETE (1<<RXC)

                      // USART Receiver buffer
                      #define RX_BUFFER_SIZE 2
                      char rx_buffer[RX_BUFFER_SIZE];

                      #if RX_BUFFER_SIZE <= 256
                      unsigned char rx_wr_index,rx_rd_index,rx_counter;
                      #else
                      unsigned int rx_wr_index,rx_rd_index,rx_counter;
                      #endif

                      // This flag is set on USART Receiver buffer overflow
                      bit rx_buffer_overflow;

                      // USART Receiver interrupt service routine
                      interrupt [USART_RXC] void usart_rx_isr(void)
                      {
                      char status,data;
                      status=UCSRA;
                      data=UDR;
                      if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                      {
                      rx_buffer[rx_wr_index++]=data;
                      #if RX_BUFFER_SIZE == 256
                      // special case for receiver buffer size=256
                      if (++rx_counter == 0) rx_buffer_overflow=1;
                      #else
                      if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                      if (++rx_counter == RX_BUFFER_SIZE)
                      {
                      rx_counter=0;
                      rx_buffer_overflow=1;
                      }
                      #endif
                      }
                      }

                      #ifndef _DEBUG_TERMINAL_IO_
                      // Get a character from the USART Receiver buffer
                      #define _ALTERNATE_GETCHAR_
                      #pragma used+
                      char getchar(void)
                      {
                      char data;
                      while (rx_counter==0);
                      data=rx_buffer[rx_rd_index++];
                      #if RX_BUFFER_SIZE != 256
                      if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                      #endif
                      #asm("cli&quot
                      --rx_counter;
                      #asm("sei&quot
                      return data;
                      }
                      #pragma used-
                      #endif

                      // Standard Input/Output functions
                      #include <stdio.h>

                      unsigned int adc_data;
                      #define ADC_VREF_TYPE 0x00

                      // ADC interrupt service routine
                      interrupt [ADC_INT] void adc_isr(void)
                      {
                      // Read the AD conversion result
                      adc_data=ADCW;
                      }

                      // Read the AD conversion result
                      // with noise canceling
                      unsigned int read_adc(unsigned char adc_input)
                      {
                      ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
                      // Delay needed for the stabilization of the ADC input voltage
                      delay_us(10);
                      #asm
                      in r30,mcucr
                      cbr r30,__sm_mask
                      sbr r30,__se_bit | __sm_adc_noise_red
                      out mcucr,r30
                      sleep
                      cbr r30,__se_bit
                      out mcucr,r30
                      #endasm
                      return adc_data;
                      }

                      // Declare your global variables here

                      void main(void)
                      {
                      char buffer[32];
                      char bufer[32];
                      float t;
                      float x;
                      int i;
                      // Declare your local variables here

                      // Input/Output Ports initialization
                      // Port A 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
                      PORTA=0x00;
                      DDRA=0x00;

                      // 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
                      // 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
                      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=0x00;

                      // Timer/Counter 0 initialization
                      // Clock source: System Clock
                      // Clock value: Timer 0 Stopped
                      // Mode: Normal top=0xFF
                      // OC0 output: Disconnected
                      TCCR0=0x00;
                      TCNT0=0x00;
                      OCR0=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: Off
                      // INT1: Off
                      // INT2: Off
                      MCUCR=0x00;
                      MCUCSR=0x00;

                      // Timer(s)/Counter(s) Interrupt(s) initialization
                      TIMSK=0x00;

                      // USART initialization
                      // Communication Parameters: 8 Data, 1 Stop, No Parity
                      // USART Receiver: On
                      // USART Transmitter: On
                      // USART Mode: Asynchronous
                      // USART Baud Rate: 9600
                      UCSRA=0x00;
                      UCSRB=0x98;
                      UCSRC=0x86;
                      UBRRH=0x00;
                      UBRRL=0x47;

                      // Analog Comparator initialization
                      // Analog Comparator: Off
                      // Analog Comparator Input Capture by Timer/Counter 1: Off
                      ACSR=0x80;
                      SFIOR=0x00;

                      // ADC initialization
                      // ADC Clock frequency: 172.800 kHz
                      // ADC Voltage Reference: AREF pin
                      ADMUX=ADC_VREF_TYPE & 0xff;
                      ADCSRA=0x8E;

                      // SPI initialization
                      // SPI disabled
                      SPCR=0x00;

                      // TWI initialization
                      // TWI disabled
                      TWCR=0x00;

                      // Alphanumeric LCD initialization
                      // Connections are specified in the
                      // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                      // RS - PORTB Bit 0
                      // RD - PORTB Bit 1
                      // EN - PORTB Bit 2
                      // D4 - PORTB Bit 4
                      // D5 - PORTB Bit 5
                      // D6 - PORTB Bit 6
                      // D7 - PORTB Bit 7
                      // Characters/line: 12
                      lcd_init(12);

                      // Global enable interrupts
                      #asm("sei&quot
                      while(1){
                      if(rx_buffer=="\n&quot
                      {
                      for(i=0;i<70;i++)rx_buffer[i]=0;
                      while (1)
                      {
                      t=read_adc(0);
                      t=(t*2.56)/1023;//الان ولتاژ رومقدار واقعیش رو نشون میده
                      lcd_gotoxy(0,0);ftoa(t,2,buffer);lcd_putsf("p 1="lcd_puts(buffer);printf("\t"
                      delay_ms(1);
                      x=read_adc(1);
                      x=(x*2.56)/1023;//الان ولتاژ رومقدار واقعیش رو نشون میده
                      lcd_gotoxy(0,1);ftoa(x,2,bufer);lcd_putsf("p2 ="lcd_puts(bufer);
                      puts(bufer);printf("\r\n"
                      {
                      for(i=0;i<70;i++)rx_buffer[i]=0;
                      break;
                      }
                      }
                      }
                      }



                      }

                      دیدگاه


                        #12
                        پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                        دوستان و اساتید کمک!!!!!!!!!!!!!!!!!!

                        دیدگاه


                          #13
                          پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                          کد:
                          [left]
                          
                          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/15/2014
                          Author : hossein mozafari
                          Company : 
                          Comments: 
                          
                          
                          Chip type        : ATmega32
                          Program type      : Application
                          AVR Core Clock frequency: 11.059200 MHz
                          Memory model      : Small
                          External RAM size    : 0
                          Data Stack size     : 512
                          *****************************************************/
                          
                          #include <mega32.h>
                          #include <stdlib.h>
                          #include <delay.h>
                          
                          // Alphanumeric LCD functions
                          #include <alcd.h>
                          
                          #ifndef RXB8
                          #define RXB8 1
                          #endif
                          
                          #ifndef TXB8
                          #define TXB8 0
                          #endif
                          
                          #ifndef UPE
                          #define UPE 2
                          #endif
                          
                          #ifndef DOR
                          #define DOR 3
                          #endif
                          
                          #ifndef FE
                          #define FE 4
                          #endif
                          
                          #ifndef UDRE
                          #define UDRE 5
                          #endif
                          
                          #ifndef RXC
                          #define RXC 7
                          #endif
                          
                          #define FRAMING_ERROR (1<<FE)
                          #define PARITY_ERROR (1<<UPE)
                          #define DATA_OVERRUN (1<<DOR)
                          #define DATA_REGISTER_EMPTY (1<<UDRE)
                          #define RX_COMPLETE (1<<RXC)
                          
                          // USART Receiver buffer
                          #define RX_BUFFER_SIZE 2
                          char rx_buffer[RX_BUFFER_SIZE];
                          
                          #if RX_BUFFER_SIZE <= 256
                          unsigned char rx_wr_index,rx_rd_index,rx_counter;
                          #else
                          unsigned int rx_wr_index,rx_rd_index,rx_counter;
                          #endif
                          
                          // This flag is set on USART Receiver buffer overflow
                          bit rx_buffer_overflow;
                          
                          // USART Receiver interrupt service routine
                          interrupt [USART_RXC] void usart_rx_isr(void)
                          {
                          char status,data;
                          status=UCSRA;
                          data=UDR;
                          if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                            {
                            rx_buffer[rx_wr_index++]=data;
                          #if RX_BUFFER_SIZE == 256
                            // special case for receiver buffer size=256
                            if (++rx_counter == 0) rx_buffer_overflow=1;
                          #else
                            if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                            if (++rx_counter == RX_BUFFER_SIZE)
                             {
                             rx_counter=0;
                             rx_buffer_overflow=1;
                             }
                          #endif
                            }
                          }
                          
                          #ifndef _DEBUG_TERMINAL_IO_
                          // Get a character from the USART Receiver buffer
                          #define _ALTERNATE_GETCHAR_
                          #pragma used+
                          char getchar(void)
                          {
                          char data;
                          while (rx_counter==0);
                          data=rx_buffer[rx_rd_index++];
                          #if RX_BUFFER_SIZE != 256
                          if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                          #endif
                          #asm("cli")
                          --rx_counter;
                          #asm("sei")
                          return data;
                          }
                          #pragma used-
                          #endif
                          
                          // Standard Input/Output functions
                          #include <stdio.h>
                          
                          unsigned int adc_data;
                          #define ADC_VREF_TYPE 0x00
                          
                          // ADC interrupt service routine
                          interrupt [ADC_INT] void adc_isr(void)
                          {
                          // Read the AD conversion result
                          adc_data=ADCW;
                          }
                          
                          // Read the AD conversion result
                          // with noise canceling
                          unsigned int read_adc(unsigned char adc_input)
                          {
                          ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
                          // Delay needed for the stabilization of the ADC input voltage
                          delay_us(10);
                          #asm
                            in  r30,mcucr
                            cbr r30,__sm_mask
                            sbr r30,__se_bit | __sm_adc_noise_red
                            out mcucr,r30
                            sleep
                            cbr r30,__se_bit
                            out mcucr,r30
                          #endasm
                          return adc_data;
                          }
                          
                          // Declare your global variables here
                          
                          void main(void)
                          {
                          char buffer[32];
                          char bufer[32];
                          float t;
                          float x;
                          int i;
                          // Declare your local variables here
                          
                          // Input/Output Ports initialization
                          // Port A 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 
                          PORTA=0x00;
                          DDRA=0x00;
                          
                          // 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
                          // 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 
                          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=0x00;
                          
                          // Timer/Counter 0 initialization
                          // Clock source: System Clock
                          // Clock value: Timer 0 Stopped
                          // Mode: Normal top=0xFF
                          // OC0 output: Disconnected
                          TCCR0=0x00;
                          TCNT0=0x00;
                          OCR0=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: Off
                          // INT1: Off
                          // INT2: Off
                          MCUCR=0x00;
                          MCUCSR=0x00;
                          
                          // Timer(s)/Counter(s) Interrupt(s) initialization
                          TIMSK=0x00;
                          
                          // USART initialization
                          // Communication Parameters: 8 Data, 1 Stop, No Parity
                          // USART Receiver: On
                          // USART Transmitter: On
                          // USART Mode: Asynchronous
                          // USART Baud Rate: 9600
                          UCSRA=0x00;
                          UCSRB=0x98;
                          UCSRC=0x86;
                          UBRRH=0x00;
                          UBRRL=0x47;
                          
                          // Analog Comparator initialization
                          // Analog Comparator: Off
                          // Analog Comparator Input Capture by Timer/Counter 1: Off
                          ACSR=0x80;
                          SFIOR=0x00;
                          
                          // ADC initialization
                          // ADC Clock frequency: 172.800 kHz
                          // ADC Voltage Reference: AREF pin
                          ADMUX=ADC_VREF_TYPE & 0xff;
                          ADCSRA=0x8E;
                          
                          // SPI initialization
                          // SPI disabled
                          SPCR=0x00;
                          
                          // TWI initialization
                          // TWI disabled
                          TWCR=0x00;
                          
                          // Alphanumeric LCD initialization
                          // Connections are specified in the
                          // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                          // RS - PORTB Bit 0
                          // RD - PORTB Bit 1
                          // EN - PORTB Bit 2
                          // D4 - PORTB Bit 4
                          // D5 - PORTB Bit 5
                          // D6 - PORTB Bit 6
                          // D7 - PORTB Bit 7
                          // Characters/line: 12
                          lcd_init(12);
                          
                          // Global enable interrupts
                          #asm("sei")
                          while(1){
                          if(rx_buffer=="\n")
                          {
                          for(i=0;i<70;i++)rx_buffer[i]=0;
                          while (1)
                             {
                              t=read_adc(0);
                              t=(t*2.56)/1023;//الان ولتاژ رومقدار واقعیش رو نشون میده
                              lcd_clear();
                              lcd_gotoxy(0,0);
                              ftoa(t,2,buffer);
                              lcd_putsf("p1=");
                              lcd_puts(buffer);
                              printf("\t");
                              delay_ms(1);
                              x=read_adc(1);
                              x=(x*2.56)/1023;//الان ولتاژ رومقدار واقعیش رو نشون میده
                              lcd_gotoxy(0,1);
                              ftoa(x,2,bufer);
                              lcd_putsf("p2=");
                              lcd_puts(bufer);
                              puts(bufer);
                              printf("\r\n");
                              if(rx_buffer=="\n")
                              {
                              for(i=0;i<2;i++)rx_buffer[i]=0;
                              break;
                              }
                              }
                              }
                              }
                             
                              
                          
                            }
                          
                          [/left]
                          برنامت چند تا مشکل داشت که رفع کردم ولی کامپایل نکردم.
                          در خصوص سوالات گذشتتم ببین دوست عزیز هر رشته از یکسری کد اسکی درست شده وقتی شما داخل hyperterminal کلید enter میزنی یک رشته ارسال میشه و چون بافر rx_buffer به صورت ارایه هست اونو به صورت یک رشته ذخیره میکنه.....و یک پیشنهاد حتما یک جزوه کامل راجع به usart و توابع stdio مطالعه کنید همچنین مروری بر یک مرجع avr به زبان c داشته باشید.موفق باشید.

                          دیدگاه


                            #14
                            پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                            ممنون خیلی لطف کردید. :rolleyes: :bye

                            دیدگاه


                              #15
                              پاسخ : نمایش اطلاعات خروجی 2 سنسور دما

                              سلام دوستان اگر بخوام حلقه for را بعد از while دوم بزارم ایا باید دستورات را هم عوض کنم با تشکر از حسن توجه شما دوستان و اساتید.

                              دیدگاه

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