اطلاعیه

Collapse
No announcement yet.

مشکل در ارتباط بیسیم با پروتکل USART

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

    #16
    پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

    نوشته اصلی توسط cortex-m3
    از نظر سالم بودن فرستنده گیرنده مطمئن باشید چون جداگانه با pt تست کردم و جواب گرفتم
    یعنی ماژول رو مستقیم زدید به PT؟
    میتونه از مچ نبودن فرکانس 2 ماژول باشه یعنی مثلا یکی 433 و دیگری 315 مگاهرتز باشه؟ نه اینطور نیست؟
    شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

    دیدگاه


      #17
      پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

      نوشته اصلی توسط محمد مومنی تزنگی
      دوست عزیز نه مقاومت پول اپ میخواد نه پول دان.
      مشکل شما تنها برنامه هست.
      با سیم چون نه نویزی هست نه خطای خب بایدم بدون خطا کار کنه اما با ماژول نویز هست و...
      تو برنامه تاخیر نباشه
      تو برنامه درحالت بیکاری باید کد ارسال بشه
      تو برنامه کدهای اصلی توی یک شمارنده چندبار ارسال بشه
      delay رو برداشتم یکمی فرق کرد(با delay خروجی صفر بود ولی بدون delay خروجی نوسانی هست با دامنه ولتاژخیلی پایین)
      به نظر من هم مشکل از برنامه هست.کدهاشو میذارم ببینید چه مشکلی داره:

      فرستنده:
      کد:
      /*****************************************************
      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  : 5/1/2015
      Author : PerTic@n
      Company : If You Like This Software,Buy It
      Comments: 
      
      
      Chip type        : ATmega8
      Program type      : Application
      AVR Core Clock frequency: 8.000000 MHz
      Memory model      : Small
      External RAM size    : 0
      Data Stack size     : 256
      *****************************************************/
      
      #include <mega8.h>
      
      #include <delay.h>
      
      // Standard Input/Output functions
      #include <stdio.h>
      
      #define ADC_VREF_TYPE 0x20
      
      // Read the 8 most significant bits
      // of the AD conversion result
      unsigned char 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);
      // Start the AD conversion
      ADCSRA|=0x40;
      // Wait for the AD conversion to complete
      while ((ADCSRA & 0x10)==0);
      ADCSRA|=0x10;
      return ADCH;
      }
      
      // Declare your global variables here
      
      void main(void)
      {
      // Declare your local variables here
      unsigned char vol;
      // 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=0x00;
      
      // 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: Off
      // INT1: Off
      MCUCR=0x00;
      
      // 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=0x33;
      
      // Analog Comparator initialization
      // Analog Comparator: Off
      // Analog Comparator Input Capture by Timer/Counter 1: Off
      ACSR=0x80;
      SFIOR=0x00;
      
      // ADC initialization
      // ADC Clock frequency: 250.000 kHz
      // ADC Voltage Reference: AREF pin
      // Only the 8 most significant bits of
      // the AD conversion result are used
      ADMUX=ADC_VREF_TYPE & 0xff;
      ADCSRA=0x85;
      
      // SPI initialization
      // SPI disabled
      SPCR=0x00;
      
      // TWI initialization
      // TWI disabled
      TWCR=0x00;
      
      while (1)
         {
         vol=read_adc(0);
         printf("%d ",vol); 
         //delay_ms(500);
      
         }
      }
      گیرنده:
      کد:
      /*****************************************************
      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  : 5/1/2015
      Author : PerTic@n
      Company : If You Like This Software,Buy It
      Comments: 
      
      
      Chip type        : ATmega8
      Program type      : Application
      AVR Core Clock frequency: 8.000000 MHz
      Memory model      : Small
      External RAM size    : 0
      Data Stack size     : 256
      *****************************************************/
      
      #include <mega8.h>
      
      // Standard Input/Output functions
      #include <stdio.h>
      #include <stdlib.h>
      #include <delay.h>
      
      // Declare your global variables here
      
      void main(void)
      {
      // Declare your local variables here
      int i;
      unsigned char vol[3];
      unsigned char vol_num=0;
      // Input/Output Ports initialization
      // Port B initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=T 
      PORTB=0x00;
      DDRB=0x02;
      
      // 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=0x00;
      
      // 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: 125.000 kHz
      // Mode: Fast PWM top=0x00FF
      // OC1A output: Non-Inv.
      // 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=0x81;
      TCCR1B=0x0B;
      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
      MCUCR=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: Off
      // USART Mode: Asynchronous
      // USART Baud Rate: 9600
      UCSRA=0x00;
      UCSRB=0x10;
      UCSRC=0x86;
      UBRRH=0x00;
      UBRRL=0x33;
      
      // 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;
      
      while (1)
         { 
         if(vol_num<=99){
         for(i=0;i<3;i++){
         vol[i]=getchar();
         }
         i=0;
         }
         if(vol_num>99){
         for(i=0;i<4;i++){
         vol[i]=getchar();
         }
         i=0;
         }
         
         vol_num=atoi(vol);
         OCR1A=vol_num; 
         //delay_ms(300);
         }
      }
      کار پروژه:یک ولوم توی فرستنده وصل adc هست و با usart از طریق ماژول ask به میکرو گیرنده انتقال داده میشه و اون رو روی pwm(OCR1A) اعمال میشه.
      در ضمن این برنامه توی PROTEUS به خوبی انجام میشه.

      دیدگاه


        #18
        پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

        نوشته اصلی توسط شهاب طاهری
        یعنی ماژول رو مستقیم زدید به PT؟
        میتونه از مچ نبودن فرکانس 2 ماژول باشه یعنی مثلا یکی 433 و دیگری 315 مگاهرتز باشه؟ نه اینطور نیست؟
        از جهت فرکانس من مقاومت های استاندارد رو به pt وصل کردم و جواب داد دارم به این نتیجه میرسم که برنامه ایراد داره و باید تمهیداتی اضافی برای ارسال بیسیم لحاظ بشه

        دیدگاه


          #19
          پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

          توی برنامه فرستنده شما هر چند میلی ثانیه یه کاراکتر بفرست
          توی گیرنده هم فقط داخل while از getchar استفاده کن.
          یعنی شما عدد 48 که میشه کاراکتر 0 رو بفرست وقتی توی گیرنده دریافت کردی بیا برنامه رو ارتقا بده. قدم به قدم.
          بعد بیا مقدار adc رو تبدیل به رشته کن و بفرست و بقیه موارد
          شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

          دیدگاه


            #20
            پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

            نوشته اصلی توسط شهاب طاهری
            توی برنامه فرستنده شما هر چند میلی ثانیه یه کاراکتر بفرست
            میگن delay نمیخاد که...

            نوشته اصلی توسط شهاب طاهری
            توی گیرنده هم فقط داخل while از getchar استفاده کن.
            در این صورت چجوری بهOCR1A عدد رو منتقل کنم اگه همیشه در حال خوندن اطلاعات باشم؟

            نوشته اصلی توسط شهاب طاهری
            یعنی شما عدد 48 که میشه کاراکتر 0 رو بفرست وقتی توی گیرنده دریافت کردی بیا برنامه رو ارتقا بده. قدم به قدم.
            متوجه نشدم

            نوشته اصلی توسط شهاب طاهری
            بعد بیا مقدار adc رو تبدیل به رشته کن و بفرست و بقیه موارد
            این کارو کردم.تاثیری نداشت

            دیدگاه


              #21
              پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

              من در واقع نمیدونم شما چجوری میتونی تشخیص بدی که مقدار توی ورودی uart هست چون مگا8 یه دونه uart داره. ولی شاید توی پروتئوس میشه اینکار رو کرد!



              فرستنده:
              کد:
              while(1)
              {
              putchar('0');
              delay_ms(100);
              }
              گیرنده:
              کد:
              while(1)
              {
              a = getchar();
              }


              حالا بیا a رو نمایش بده.

              یعنی این محیط تایپ eca منو دیوونه کرد. :angry: :angry: :angry: :angry: :angry: :angry:
              شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

              دیدگاه


                #22
                پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

                نوشته اصلی توسط شهاب طاهری
                من در واقع نمیدونم شما چجوری میتونی تشخیص بدی که مقدار توی ورودی uart هست چون مگا8 یه دونه uart داره. ولی شاید توی پروتئوس میشه اینکار رو کرد!



                فرستنده:
                کد:
                while(1)
                {putchar("0");
                delay_ms(100);}
                گیرنده:
                کد:
                while(1)
                {a = getchar();}


                حالا بیا a رو نمایش بده.

                یعنی این محیط تایپ eca منو دیوونه کرد. :angry: :angry: :angry: :angry: :angry: :angry:
                توی پروتئوس میشه اطلاعات روی USART رو دید.
                این کاری که شما میگید هم رو انجام میدم ببینم چی میشه (ولی این کد شما برای ارسال کارکتر هست ولی مال من عدده)

                دیدگاه


                  #23
                  پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

                  برای تست فرستنده گیرنده ساده ترین راه تقریبا همین راهه.
                  شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                  دیدگاه


                    #24
                    پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

                    خب من دارم روی انتقال اطلاعات در پروتکل usart به صورت ساده(نمایش کاراکتر روی lcd) کار میکنم که فقط یه مشکلی هست(برنامه کار میکنه ولی فقط در صورتیکه در گیرنده از تعداد کاراکتر دریافتی فرستنده گاه باشیم)

                    کد فرستنده:
                    کد:
                    /*****************************************************
                    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  : 5/3/2015
                    Author : PerTic@n
                    Company : If You Like This Software,Buy It
                    Comments: 
                    
                    
                    Chip type        : ATmega8
                    Program type      : Application
                    AVR Core Clock frequency: 8.000000 MHz
                    Memory model      : Small
                    External RAM size    : 0
                    Data Stack size     : 256
                    *****************************************************/
                    
                    #include <mega8.h>
                    // Alphanumeric LCD functions
                    #include <alcd.h>
                    
                    // 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=0x00;
                    
                    // 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: Off
                    // INT1: Off
                    MCUCR=0x00;
                    
                    // 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=0x33;
                    
                    // 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;
                    
                    // 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: 16
                    lcd_init(16);
                    
                    while (1)
                       {
                       lcd_gotoxy(0,0);
                       lcd_putsf("ABATTOIR");
                       printf("ABATTOIR"); 
                       
                       }
                    }
                    کد گیرنده
                    کد:
                    /*****************************************************
                    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  : 5/3/2015
                    Author : PerTic@n
                    Company : If You Like This Software,Buy It
                    Comments: 
                    
                    
                    Chip type        : ATmega8
                    Program type      : Application
                    AVR Core Clock frequency: 8.000000 MHz
                    Memory model      : Small
                    External RAM size    : 0
                    Data Stack size     : 256
                    *****************************************************/
                    
                    #include <mega8.h>
                    
                    // Alphanumeric LCD functions
                    #include <alcd.h>
                    
                    // Standard Input/Output functions
                    #include <stdio.h>
                    
                    // Declare your global variables here
                    
                    void main(void)
                    {
                    // Declare your local variables here
                    unsigned char c[19];
                    //char str_c[16];
                    unsigned char i;
                    // 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=0x00;
                    
                    // 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: Off
                    // INT1: Off
                    MCUCR=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: Off
                    // USART Mode: Asynchronous
                    // USART Baud Rate: 9600
                    UCSRA=0x00;
                    UCSRB=0x10;
                    UCSRC=0x86;
                    UBRRH=0x00;
                    UBRRL=0x33;
                    
                    // 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;
                    
                    // 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: 16
                    lcd_init(16);
                    
                    while (1)
                       {
                       //scanf("%c",&c);
                       for(i=0;i<8;i++){
                       c[i]=getchar();
                       }
                       //i=0;
                       //sprintf(str_c,"%c ",c);
                       lcd_gotoxy(0,0);
                       lcd_puts(c);
                       
                    
                       }
                    }
                    حالا به نظرتون باید چیکار کنم که گیرنده،حساس به تعداد کاراکتر دریافتی نباشه؟
                    در ضمن میدونم که باید برای ارسال بیسیم باید این اطلاعات جند بار فرستاده بشه ولی این فقط شروعه کاره و کم کم میخام برم جلو.

                    با تشکر

                    دیدگاه


                      #25
                      پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

                      ذوستان این کد توی پست قبلی که توی proteus جواب داد رو روی برد بورد بستم ولی توی گیرنده کاراکترای اشتباهی رو میگرفت.
                      بنظرتون مشکل چیه؟
                      در ضمن در حالت اولیه که فقط تست lcd بود، وقتی نور پس زمینه رو زیاد میکردم هم همین اتفاق می افتاد.(کاراکترای اشتباهی رو دریافت میکرد)

                      دیدگاه


                        #26
                        پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

                        البته توی پست قبلی من با سیم دو میکرو رو به هم وصل کردم.
                        ولی الان با ماژول RF فرستنده-گیرنده(همون کد) خروجی دارم فقط نامنظمه که اونم به خاطر اینه که باید چند بار اطلاعات رو بفرستم.
                        ولی چرا با سیم جواب نداد؟؟؟
                        نوع داده ای که در گیرنده در پروتکل USART دریافت میشه چیه؟ و چه توابعی هست که میشه اونو به انواع دیگر داده تبدیل کرد؟
                        و کلا چه داده هایی رو میشه به این روش ارسال کرد؟(صوت و تصویر هم میشه؟)

                        دیدگاه


                          #27
                          پاسخ : مشکل در ارتباط بیسیم با پروتکل USART

                          خب مشکلات قبلی که مطرح کردم تا حدودی رفع شد.یعنی تونستم کد و دیکد کنم داده ام رو ولی مشکلی که هست اینکه بگیر نگیر داره!
                          وقتی تغذیه فرستنده و گیرنده(جدا از هم) رو وصل میکنم برای بار اول دیتا رو توی گیرنده ندارم ولی وقتی چند بار تغذیه گیرنده رو قطع و وصل میکنم یه بار داده رو میگیره.
                          بنظر من مشکل از فرکانس میکرو هست.چون فرکانس میکرو 8MHz هست و فرکانس ماژول ASK 315MHz هست.
                          تا حالا با این موقعیت رو به رو شدید؟ چیکار کنم؟ delay به درد میخوره؟((البته من با گذاشتن delay همین جوابا رو گرفتم و بدون اصلا دیتا رو نشون نمیده)

                          دیدگاه

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