اطلاعیه

Collapse
No announcement yet.

کار با rs232 در avr

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

    کار با rs232 در avr

    برنامه فعال سازی rs232 در avr با وقفه را می خواهم

    #2
    پاسخ : کار با rs232 در avr

    سلام دوست عزیز
    شما نی خوای از UART استفاده کنی یا USART؟
    به زبانی برنامه می نویسی؟
    در دیر مغان آمد یارم قدحی در دست
    مست از می می خواران از نرگس مستش مست

    دیدگاه


      #3
      پاسخ : کار با rs232 در avr

      من با uart کار می کنم
      زبان برنامه نویسی basecome در avr می باشد

      دیدگاه


        #4
        پاسخ : کار با rs232 در avr

        سلام دوست عزیز
        من با بسکام زیاد کار نکردم،ولی فکر کنم توی sample های خودش چیزی رو که می خوای داشته باشه.
        و یک توصیه دوستانه اگر می خوای با میکرو کار کنی با C یا اسمبلی کار کن
        در دیر مغان آمد یارم قدحی در دست
        مست از می می خواران از نرگس مستش مست

        دیدگاه


          #5
          پاسخ : کار با rs232 در avr

          پورت سریال میکرو های من اصلا جواب نمی دهد.
          مشکل از کجاست تمام نکات را هم رعایت کردم ؟ :angry:

          دیدگاه


            #6
            پاسخ : کار با rs232 در avr

            با سلام
            من در حین ارتباط با rs232 به مشکلی برخوردم که تا حالا باهاش مواجه نشدم...من یه برد با atmega128 دارم که ارتباط USART1 آن را فعا کردم و با دستور getchar1 و putchar1 با کدویژن و میکرو ارتباط برقرار کردم...برای دریافت و ارسال اطلاعات از کامپیوتر به میکرو از برنامه VB6 استفاده کردم و بادریت 9600 و کریستال 4 مگا استفاده کردم یه کامند گذاشتم در اون کامند اطلاعات را به میکرو ارسال کردم برنامه vb :
            کد:
            Private Sub Command1_Click()
            Dim Presure1 As String
            Dim n As Integer
            Dim m As Integer
            Dim ss As Integer
            
            MSComm1.Output = "p"
            
            For n = 1 To 100
            For m = 1 To 100
            Next m
            Next n
            
            Text1.Text = MSComm1.Input
            
            End Sub
            توی میکرو ازدستور getchar استفاده کردم....

            کد:
            #include <mega128.h>
            #include <stdio.h>
            #include <delay.h>
            #include <math.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)
            
            // Get a character from the USART1 Receiver
            #pragma used+
            
            ////////////////////////////////////////////////////////////////////////////////////////////////////
            
            char getchar1(void)
            {
            char status,data;
            while (1)
               {
               while (((status=UCSR1A) & RX_COMPLETE)==0);
               data=UDR1;
               if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                 return data;
               }
            }
            #pragma used-
            
            // Write a character to the USART1 Transmitter
            #pragma used+
            void putchar1(char c)
            {
            while ((UCSR1A & DATA_REGISTER_EMPTY)==0);
            UDR1=c;
            }
            #pragma used-
            
            //////////////////////////////////////////////////////////////
            
            // Declare your global variables here
            
            void main(void)
            {
            char a=0;
            //int overflow=0;
            
            //char b=0;
            
            unsigned char xx[2086];
            unsigned char adc_value;
            //unsigned char yy[2086];
            //char V;
            char cc;
            int i;
            int n;
            int j;
            //int l=0;
            
            unsigned int k;
            unsigned int flag;
            //long nExpo;
            
            //unsigned char adc_value;
            volatile unsigned char s=0x00;
            volatile unsigned char u=0x00;
            volatile unsigned char h=0x00;
            // Declare your local variables here
            
            //-----------------------------------------------------------------------------------------Ports
            // 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=0xff;
            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=0xff;
            
            // 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=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;
            
            // Port E 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 
            PORTE=0x00;
            DDRE=0x00;
            
            // Port F 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 
            PORTF=0x00;
            DDRF=0x00;
            
            // Port G initialization
            // Func4=In Func3=In Func2=In Func1=In Func0=In 
            // State4=T State3=T State2=T State1=T State0=T 
            PORTG=0x00;
            DDRG=0x00;
            
            // USART1 initialization
            // Communication Parameters: 8 Data, 1 Stop, No Parity
            // USART1 Receiver: On
            // USART1 Transmitter: On
            // USART1 Mode: Asynchronous
            // USART1 Baud Rate: 9600
            UCSR1A=0x00;
            UCSR1B=0x18;
            UCSR1C=0x06;
            UBRR1H=0x00;
            UBRR1L=0x19;
            while (1)
               {  
               
              
               a=getchar1(); 
               
              if (a=='p') 
                { 
                 
                 putchar1('5'); 
            }

            ولی توی vb هیچ دریافتی ندارم...خواهش میکنم کمکم کنید...پاک گیج شدمم....

            دیدگاه

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