اطلاعیه

Collapse
No announcement yet.

کتابخانه uart

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

    کتابخانه uart

    سلام.
    آقا یکی به داد من برسه دیگه دارم قاط میزنم.
    من با codevision کار میکردم و بعد از یک مدتی تصمیم گرفتم برم به سمت Atmel studio و با اون کار کنم.
    اوایلش خیلی خوب بود و خیلی حال میداد ولی ...
    ولی به یک مشکلی بزرگ برخوردم اونم کار با uart بود.
    من از uart کتابخانه avrlib استفاده میکنم ولی هی ارور میده.
    از اینترنت هم چندتا کتابخانه دانلود کردم ولی کار نکرد.
    یکی کتابخانه سالم نداره به من بده؟

    #2
    پاسخ : کتابخانه uart

    سلام
    یه فایل .C بساز و اینارو توش بریز و بزار کنار پروژت
    [code=c]
    #include <avr/io.h>

    void InitUSART(unsigned long baudrate){
    baudrate = (11059200/16/baudrate-1);
    UBRRH = (uint8_t)(baudrate>>8);
    UBRRL = (uint8_t)baudrate;
    UCSRB = (1<<RXEN)|(1<<TXEN);
    UCSRC = (0<<USBS)|(1<<URSEL)|(1<<UCSZ1)| (1<<UCSZ0);
    }

    void SendByte(char data){
    while((UCSRA&(1<<UDRE)) == 0) {};
    UDR = data;
    }

    char GetByte(){
    while((UCSRA&(1<<RXC)) == 0) {};
    return UDR;
    }

    void SendString(char* data){
    while (*data) {
    SendByte(*data);
    data++;
    }
    }
    [/code]
    ;()((void (*)(void))0x0000))

    دیدگاه


      #3
      پاسخ : کتابخانه uart

      اینو یادم رفت:
      تو خط اول تابع InitUSART اون عدد 11059200 رو با مقدار کریستالت باید عوض کنی
      ;()((void (*)(void))0x0000))

      دیدگاه


        #4
        پاسخ : کتابخانه uart

        نوشته اصلی توسط alireza_14755
        سلام.
        آقا یکی به داد من برسه دیگه دارم قاط میزنم.
        من با codevision کار میکردم و بعد از یک مدتی تصمیم گرفتم برم به سمت Atmel studio و با اون کار کنم.
        اوایلش خیلی خوب بود و خیلی حال میداد ولی ...
        ولی به یک مشکلی بزرگ برخوردم اونم کار با uart بود.
        من از uart کتابخانه avrlib استفاده میکنم ولی هی ارور میده.
        از اینترنت هم چندتا کتابخانه دانلود کردم ولی کار نکرد.
        یکی کتابخانه سالم نداره به من بده؟
        سلام
        یه کتابخونه هست که یه آدم خفن به اسم peter fleury نوشته .البته با وقفه کار میکنه و باید حتما وقفه رو فعال کنی . من خودم مدت هاست اومدم به سمت atmel studio و از همین کتابخونه استفاده می کنم .
        فایل های uart.h و uart.c رو بذار توی یه دونه فولدر کنار فایل C پروژت . بعد این چند تاخط رو به اول برنام است اضافه کنه. تو فایل zip که دانلود می کنی خودش یه برنامه ی تست داره.

        به F_CPU و نرخ باود دقت کن! این دوتا رو می تونی تغییر بدی.
        از این لینک دانلود کن .

        [code=c]#define F_CPU 8000000UL //<<<<<<<<
        /* 9600 baud */
        #define UART_BAUD_RATE 9600 // <<<<<<<<

        #include <avr/io.h>

        #include <util/delay.h>
        #include "uartlibrary/uart.h"
        #include "uartlibrary/uart.c"

        //................

        int main(void)
        {
        //................

        uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); // <<<<<<<<
        sei(); // <<<<<<<<

        //................
        while(1){
        //................
        }
        //................

        }[/code]

        بعد یه نکته ای!!!!! که ممکنه اشکال کارت اونجا باشه .
        چون این کتاب خونه قدیمیه ممکنه میکرو های جدید رو پشتیبانی نکنه . مثلا atmega16 رو پشتیبانی می کنه ولی atmega16A رو نه ! بقیه هم به همین ترتیب و برنامه موقع کامپایل ارور میده :
        no UART definition for MCU available
        برای حل این مشکل کافیه بری به فایل uart.c و مثلا atmega16 رو سرچ کنی و به atmega16a تغییرش بدی مثل این :

        [code=c]#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \[/code]

        تغییرش بده به
        [code=c]#elif defined(__AVR_ATmega8A__) || defined(__AVR_ATmega16A__) || defined(__AVR_ATmega32A__) \[/code]

        موفق باشید.
        http://massoud68.persiangig.com/pict...1406891613.gif

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

        دیدگاه


          #5
          پاسخ : کتابخانه uart

          نوشته اصلی توسط SAJAD-G
          اینو یادم رفت:
          تو خط اول تابع InitUSART اون عدد 11059200 رو با مقدار کریستالت باید عوض کنی
          آقا دست درد نکنه کارم راه افتاد.
          وقتی کتابخانه را داشته باشی واقعا کار کردن با Atmel studio لذت بخشه.

          دیدگاه


            #6
            پاسخ : کتابخانه uart

            برای کار کردن با همه قسمتهای میکرو باید چیکار کنم؟
            آیا کتابخانه وجود دارد که از صحت کارکرد آن مطمئن باشید؟

            دیدگاه


              #7
              پاسخ : کتابخانه uart

              نوشته اصلی توسط alireza_14755
              آقا دست درد نکنه کارم راه افتاد.
              وقتی کتابخانه را داشته باشی واقعا کار کردن با Atmel studio لذت بخشه.
              واقعا این حرفتو قبول دارم . توی کدویژن ادم کور میشه. :angry: من وقتی با کدویژن کار میکردم هیچی بلد نبودم چون همه چی آماده است !!
              ولی atmel studio .........................
              http://massoud68.persiangig.com/pict...1406891613.gif

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

              دیدگاه


                #8
                پاسخ : کتابخانه uart

                نوشته اصلی توسط alireza_14755
                برای کار کردن با همه قسمتهای میکرو باید چیکار کنم؟
                آیا کتابخانه وجود دارد که از صحت کارکرد آن مطمئن باشید؟
                هست باید بگردی.
                همین طرف (peter fleury) برای LCD کارکتری و TWI هم کتابخانه داره . اونها هم خوبن من ازشون استفاده کردم.
                از این لینکدانلود کن.
                http://massoud68.persiangig.com/pict...1406891613.gif

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

                دیدگاه


                  #9
                  پاسخ : کتابخانه uart

                  تو دیتاشیت برای تمام بخش های اصلی میکرو مثال برای GCC داره، من همینو از اونجا نوشتم و یه مقدار کاملش کردم
                  ;()((void (*)(void))0x0000))

                  دیدگاه

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