اطلاعیه

Collapse
No announcement yet.

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

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

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

    تو رو خدا یکی کمکم کنه! این کد :
    ارسال کار می کنه ولی دریافت از طرف کامپیوتر نه!

    کد:
    #include <mega16.h>
    #include <delay.h>
    // Alphanumeric LCD Module functions
    #asm
      .equ __lcd_port=0x18 ;PORTB
    #endasm
    #include <lcd.h>
    
    // Standard Input/Output functions
    #include <stdio.h>
    
    // Declare your global variables here
    char ch;
    void main(void)
    {
    // 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=0xff;
    
    // 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=0xff;
    DDRC=0xff;
    
    // 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=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 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: Timer 2 Stopped
    // Mode: Normal top=FFh
    // 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: 2400
    UCSRA=0x00;
    UCSRB=0x18;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x19;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    // LCD module initialization
    lcd_init(16);
    delay_ms (500);             
    PORTA.0 = 1;
    putsf("Hello World! testing serial port ... !!");
    PORTA.1 = 1;
    ch = getchar();
    PORTA.2 = 1;
    while (1)
       {
       // Place your code here
    
       };
    }
    فقط اون آخرشو ببینین دیگه ... سه تا پورت رو یکی یکی خروجی کردم(وصلن به ال ای دی برای تست برنامه)
    تا ال ای دی دوم روشن میشه و کامپیوتر اطلاعات رو میگیره. ولی از طرف کامپیوتر می فرستم چیزی نمی گیره! (ال ای دی سوم روشن نمیشه)
    در حالی که اگه rx و tx میکرو رو به هم وصل کنم کدی که میکرو میفرسته خودش دریافت می کنه و برنامه عمل می کنه(ال ای دی سوم روشن میشه)
    مشکل چیه که وصل میکنم به max232 از طرف کامپیوتر نمی گیره؟!؟
    https://www.linkedin.com/in/mohammadhosseini69

    http://zakhar.blog.ir

    دیدگاه


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

      buad rate رو تغییر بده من این کار رو کردم جواب داد یعنی عدد دو طرف رو یه مقدار قرار نده!!!!! :eek: :eek: :eek: :eek:

      دیدگاه


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

        جدی می گی!؟ خب اینطوری اگه از میکرو بفرستم کامپیوتر درست نمی گیره!!
        https://www.linkedin.com/in/mohammadhosseini69

        http://zakhar.blog.ir

        دیدگاه


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

          سلام
          ایراد از برنامه نیست. اینم دلیلش :
          بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
          اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

          دیدگاه


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

            آقا مصطفی اون مداری که من بسته بودم هم تو پروتئوس جواب می داد ولی در عمل نه :eek: :eek: راستی بعضی وقتها کریستال هم میتونه این مشکل ایجاد کنه از چه کریستالی استفاده می کنید

            دیدگاه


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

              نوشته اصلی توسط mostafahk
              سلام
              ایراد از برنامه نیست. اینم دلیلش :
              این که درست بود! از طرف مبکرو به کامپیوتر میره ولی از کامپیوتر به میکرو نمیاد!

              نوشته اصلی توسط SUNMOON
              آقا مصطفی اون مداری که من بسته بودم هم تو پروتئوس جواب می داد ولی در عمل نه :eek: :eek: راستی بعضی وقتها کریستال هم میتونه این مشکل ایجاد کنه از چه کریستالی استفاده می کنید
              کریستال داخلی خود میکرو دیگه! 1 مگ
              https://www.linkedin.com/in/mohammadhosseini69

              http://zakhar.blog.ir

              دیدگاه


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

                مثل اینکه مشکل از طرف کامپیوتره! چون من پورت کام رو وصل کردم به یه ماژول htmr از نوع rs232 (از اونایی که روش max232 داره) وقتی از طرف کامپیوتر اطلاعات میفرستادم ال ای دی ماژول روشن نمی شد!
                چیکتر کنم؟ مگه میشه پورت دریافت کنه ولی ارسال نکنه؟ اتصال پین هم تست کردم برقراره!
                https://www.linkedin.com/in/mohammadhosseini69

                http://zakhar.blog.ir

                دیدگاه


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

                  نوشته اصلی توسط spman

                  این که درست بود! از طرف مبکرو به کامپیوتر میره ولی از کامپیوتر به میکرو نمیاد!

                  نوشته اصلی توسط SUNMOON
                  آقا مصطفی اون مداری که من بسته بودم هم تو پروتئوس جواب می داد ولی در عمل نه :eek: :eek: راستی بعضی وقتها کریستال هم میتونه این مشکل ایجاد کنه از چه کریستالی استفاده می کنید
                  کریستال داخلی خود میکرو دیگه! 1 مگ
                  عزیزم به من که نگو آخه
                  پایه PA2 یک شده تو عکس ببین. این یعنی برنامه مشکل نداره. ورودی UART هم در حالت عادی باید 1 باشه.
                  بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                  اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                  دیدگاه


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

                    نوشته اصلی توسط محمد حسینی
                    رو 1 مگ گذاشتم و سرعت رو آوردم پایین و درایور مبدل رو هم تغییر دادم درست شد.

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


                    داده که دریافت بشه باید از دستور getchar بگذره و ال ای دی سوم هم روشن بشه! ولی فقط دو تای اول روشن میشه. سومی روشن نمیشه!
                    اینو میدونم که ()getchar اونقدر منتظر می مونه تا تو حتما یه کاراکتری براش بفرستی

                    دیدگاه

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