NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3338 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 21 به 27 از 27

موضوع: تبدیل unsigned char به ارایه

  1. #21
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    فکر کنم تنها ایرادی که کد بالا داره متغییر data_transfer باشه
    1-این متغییر نباید به صورت ارایه تعریف بشه.
    2- نباید هم به صورت استاتیک تعریف بشه.
    3-چون طول متغییر ارسال ثابت نیست باید از ورودی تابع دریافت بشه
    4-"اندازه ارایه" نمی تونه به صورت متغییر باشه باید حتما به صورت ثابت تعریف بشه در غیر این صورت
    یا باید از new استفاده کرد که در c وجود نداره یا از malloc

    مشکل اینه که مشخص نکردی تعداد بایت های ارسال همیشه یکی هست یا تعدادش متغییر
    اولی برای ارسال با طول متغییر ودومی برای ارسال فقط یک بایت هست

    کد:
    unsigned char read_i2c(unsigned char BusAddres , unsigned char *DataToSend , unsigned int NumOfSendData ,
                            unsigned char *ReceiveData,unsigned int NumOfRData, unsigned char Ack )
    {
    I2C_M_SETUP_Type i2c_data;
    i2c_data.tx_data=DataToSend;
    i2c_data.tx_length=NumOfSendData;
    i2c_data.rx_data=ReceiveData;
    i2c_data.rx_length=NumOfRData;
    i2c_data.sl_addr7bit= BusAddres<<1;
    I2C_MasterTransferData(LPC_I2C1, &i2c_data , I2C_TRANSFER_POLLING);
    //return error status or number of byte received by i2c.
    }
    
    unsigned char Test_I2C()
    {
        unsigned char Send;
        unsigned char Rec;
        send=RA_WHO_AM_I;
        read_i2c(MPU6050_ADDRESS, &send,1,&Rec,1,0);
        if(Rec == 0x68)
            return 1;       // Means Comunication With MPU6050 is Corect
        else
            return 0;       // Means ERROR, Stopping
    }
    
    
    
    unsigned char read_i2c(unsigned char BusAddres , unsigned char DataToSend ,unsigned char *ReceiveData,unsigned int NumOfRData, unsigned char Ack )
    {
    unsigned char Data=DataToSend;
    I2C_M_SETUP_Type i2c_data;
    i2c_data.tx_data=&Data;
    i2c_data.tx_length=1;
    i2c_data.rx_data=ReceiveData;
    i2c_data.rx_length=NumOfRData;
    i2c_data.sl_addr7bit= BusAddres<<1;
    I2C_MasterTransferData(LPC_I2C1, &i2c_data , I2C_TRANSFER_POLLING);
    //return error status or number of byte received by i2c.
    }
    
    
    unsigned char Test_I2C()
    {
        unsigned char Data;
        read_i2c(MPU6050_ADDRESS, RA_WHO_AM_I,&Data,1,0);
        if(Data == 0x68)
            return 1;       // Means Comunication With MPU6050 is Corect
        else
            return 0;       // Means ERROR, Stopping
    }

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #22
    کاربر فعال
    تاریخ عضویت
    Feb 2012
    نام
    مصطفی
    نوشته ها
    273
    تشکر
    195
    تشکر شده 128 بار در 93 پست

    پیش فرض

    نه دیگه من گفتم شما مواردی رو که define کردی نباید به عنوان آرگومان تابع تعریف کنی در حالی که شما توی تعریف تابع Write از WRITE , REG به عنوان متغیر آرگومان تابع استفاده کردی که این باعث ارور میشه.

  5. تشکرها از این نوشته :


  6. #23
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    به هر حال هرچی باشه ثمره ی چندسال فعالیت تو دنیای مجازی من هست
    ولی نمیتونم اجازه بدم افرادی که برای یادگیری وارد یه همچین فضایی می شوند
    درگیر مسائل بازاریابی بشن دچار انتخاب بین بد و بدتر
    اینکه جنس چینی رو از کی بخرن
    مثل دوران کنکور که الکی جو میدن بیایید کلاس اموزشی های ما شرکت کنید
    اخرش هم با هزار زحمت میری دانشگاه کلی هزینه میکنی هیچی به هیچی
    ویرایش توسط sadeghbakhshi : 05-09-2015 در ساعت 01:44

  7. #24
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    به هر حال هرچی باشه ثمره ی چندسال فعالیت تو دنیای مجازی من هست
    ولی نمیتونم اجازه بدم افرادی که برای یادگیری وارد یه همچین فضایی می شوند
    درگیر مسائل بازاریابی بشن دچار انتخاب بین بد و بدتر
    اینکه جنس چینی رو از کی بخرن
    مثل دوران کنکور که الکی جو میدن بیایید کلاس اموزشی های ما شرکت کنید
    اخرش هم با هزار زحمت میری دانشگاه کلی هزینه میکنی هیچی به هیچی
    ویرایش توسط sadeghbakhshi : 05-09-2015 در ساعت 01:44

  8. #25
    کاربر فعال
    تاریخ عضویت
    Feb 2012
    نام
    مصطفی
    نوشته ها
    273
    تشکر
    195
    تشکر شده 128 بار در 93 پست

    پیش فرض

    و من این تابع رو داخل تابع خودم که به شکل زیر هست قرار میدم
    کد:
    void Write(unsigned char ADD,unsigned char REG , unsigned char WRITE,LPC_I2C_TypeDef *I2CX)
    و مقادیر WRITE و REG به صورت #define تعریف کردم
    باور کن من بی تقصیرم شما خودت گفتی که WRITE,REG رو define کردی و از طرفی هم توی تعریف تابع از اونا استفاده کردی.

  9. تشکرها از این نوشته :


  10. #26
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    به هر حال هرچی باشه ثمره ی چندسال فعالیت تو دنیای مجازی من هست
    ولی نمیتونم اجازه بدم افرادی که برای یادگیری وارد یه همچین فضایی می شوند
    درگیر مسائل بازاریابی بشن دچار انتخاب بین بد و بدتر
    اینکه جنس چینی رو از کی بخرن
    مثل دوران کنکور که الکی جو میدن بیایید کلاس اموزشی های ما شرکت کنید
    اخرش هم با هزار زحمت میری دانشگاه کلی هزینه میکنی هیچی به هیچی
    ویرایش توسط sadeghbakhshi : 05-09-2015 در ساعت 01:44

  11. #27
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadeghbakhshi نمایش پست ها
    سلام
    من یک نمونه برنامه نوشتم که توش یکی دوتا تابع با یکسری دیفاین هست
    ولی متاسفانه درست کار نمیکنه
    تنها جایی که احتمال میدم اشتباه باشه
    دستورات cmsis هست چون قبلا هم به این جور مشکلات خورده بودم البته با پورت سریال
    نه کلاک درست تنظیم میشه
    نه استراکچرها درست مقدار میگیرن

    با وجود تمامی احترامی که واسه شما و بقیه دوستان قائلم ولی باید بگم که همچین چیزی امکان نداره و حتما شما خودتون یه جایی اشتباه کردید. اصلا گاف به این بزرگی توی cmsis امکان نداره. من فایل شما رو دانلود کردم ولی اصلا نمی دونم مشکل دقیق شما چیه و کجا ایراد میگیره و چه ایرادی؟
    همچنین اگر ناراحت نمی شید باید بگم که بد کدنویسی کردید(عدم رعایت حتی نکات ساده مثل تو رفتگی واسه خوانایی بیشتر کد و...) و به نظر زیاد به ide هم آشنایی ندارید(ضمیمه کردن فایل های بی مربوط و...).
    من یه پیشنهاد واسه شما دارم(بخاطر اینکه سریع و ساده مشکل شما حل بشه). چرا یه تم از cmsis واسه میکروتون نمی گیرید و برنامه تون رو اونجا تست نمی کنید؟ منظورم همون فایل آماده ی cmsis هستش که واسه میکروتون اماده هستش و فقط می خوایید که کدنویسی کنید.

صفحه 2 از 2 نخستنخست 12

موضوعات مشابه

  1. پاسخ: 1
    آخرين نوشته: 26-07-2014, 01:28
  2. نرم افزار lcd char?
    توسط ali norbakhsh در انجمن AVR
    پاسخ: 3
    آخرين نوشته: 19-04-2010, 00:19

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •