اطلاعیه

Collapse
No announcement yet.

یه بحث تخصصی در مورد برنامه نویسی سی ( CodeVision and ATmega128 )

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

    یه بحث تخصصی در مورد برنامه نویسی سی ( CodeVision and ATmega128 )

    یه بحث تخصصی در مورد برنامه نویسی سی
    در مورد این کدها چی میدونید؟
    چند وقت پیش یکی از مقاله ها ی شرکت رو مطالعه می کرد به اینجا که رسیم دیدم متوجه نمیشم
    CodeVision and ATmega128

    char (*tab61__getChar)();
    void (*tab61__putChar)(char c);
    char (tab61_getChar)();
    void( tab61_putChar)(char c);

    void tab61_init(char(*getChar)(),void(*putChar)(char)
    {
    tab61__getChar=getChar;
    tab61__putChar=putChar;
    }

    char tab61_getChar ( )
    {
    char c;
    c=tab61__getChar();
    return c;
    }
    void tab61_putChar(char c)
    {
    Tab61__putChar(c);
    }
    void tab61_putChar(char c)
    {
    tab61__putChar(c);
    }

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

    #2
    پاسخ : یه بحث تخصصی در مورد برنامه نویسی سی ( CodeVision and ATmega128 )

    tab61_put و tab61_get دو تا تابعه. باید ببینی توی اینها چی نوشته.

    دیدگاه


      #3
      پاسخ : یه بحث تخصصی در مورد برنامه نویسی سی ( CodeVision and ATmega128 )

      چیز خاصی نیست. tab61__getChar یک اشاره گر به تابعی بفرمی هست که یک مقدار از نوع char بر میگردونه. و tab61__putChar یک اشاره گر به تابعی هست که هیچی برنمیگردونه ولی یک آرگومان از جنس char میگیره.
      حالا در تابع tab61_init اومده با استفاده از دو آرگومان ورودی این دو متغیر رو مقدار دهی کرده.

      در تابع tab61_getChar میاد و میگه:
      اون تابعی که آدرسش در tab61__getChar هست رو صدا بزن و نتیجه رو برگردون.

      این به ++C ربطی نداره و برای این اینکارو کرده که بشه یک چیزی مثل abstraction رو ایجاد کرد. این موارد ممکنه از لحاظ تئوری با ++C توضیح داده بشه ولی جزء مشخصات C هست. عین این کارو میشه در اسمبلی هم انجام داد.

      دیدگاه


        #4
        پاسخ : یه بحث تخصصی در مورد برنامه نویسی سی ( CodeVision and ATmega128 )

        با اونکه از نظر تئوری می فهمم چی میگی ولی این سوالها برام پیش می آید
        دیتای روی USART چطور خونده می شه ؟ از دستورات عادی خوندن و نوشتن روی USART خبری نیست
        مقدار دهی اولیه این توابعی که گفتی مقدار دهی میشن کجاست
        اگه بخواهیم سطحی ازش بگذریم مسئله ای پیش نمی آد و قابل فهمه
        اما اگه بخواهیم ازش استفاده کنیم نمیشه حتی من به جای
        ;(Tab61__putChar(c
        از putchar خود میکرو هم استفاده کردم جواب نداد؟؟؟؟
        میشه بیشتر توضیح بدی؟
        لبخند بزنید تا زندگی برایتان لذت بخش گردد

        دیدگاه

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