ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11
  1. #1
    2013/02/26
    133
    4

    i2c نرم افزاری و ds1307

    با سلام خدمت دوستان.
    من با i2c نرم افزاری c18 خواستم یک فرکانس 1 هرتز رو رو پایه ی out ای سی ds1307 ایجاد کنم.کد من هم بصورت زیر هست.سوالی که دارم اینه که :
    من اول جای SWRestartI2C(); از SWStartI2C(); استفاده کردم.ولی کار نمیکرد.چرا؟ایا کلا باید تو راه اندازی i2c نرم افزاری یا i2c ابتدا یک بار ری استارت کنیم ؟یا این مورد تنها مربوط میشه به ds1307 ؟در ضمن تو ی مثال sw_i2c از MPLAB_C18_Libraries.pdf ری استارت نکرده؟! oo:
    کد:
    #include <P18f4550.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <delays.h>
    #include "sw_i2c.h"
    
    //*****************************************
    
    #pragma config WDT=OFF
    #pragma config FOSC=HS// our crystal is 4 MHZ
    #pragma config CPUDIV=OSC1_PLL2
    #pragma config LVP=OFF
    //*****************************************
    unsigned char var=0;
    //***************************************
    void main(void)
    {
     ADCON1=0X0F; //All analog port are digitaled
    // check out the memory model & linker & header & lkr
    
     SWRestartI2C();
     //SWStartI2C();
     var=SWPutcI2C(0xD0);// control byte
     SWAckI2C();
     var=SWPutcI2C(0x07); // word address
     SWAckI2C();
     var=SWPutcI2C(0x10); // data
     SWAckI2C();
     SWStopI2C();
    
    }
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران
  2. #2
    2013/04/25
    کرمان
    44
    1

    پاسخ : i2c نرم افزاري و ds1307

    سلام دوست من
    ببينيد پروتکل i2c کلا براي نوشتن در قطعه بايد مراحل زير اجرا بشه
    1-استارت
    2-ادرس قطعه براي نوشتن
    3-ادرس حافظه قطعه براي نوشتن
    4-ديتاي مورد نظر
    5-استاپ
    حالا اين براي تمام قطعه هاي i2c ثابته
    و چه سخت افزاري چه نرم افزاري بايد اين مراحل انجام بشه
    فقط در نرم افزاري بايد حواستون به اکناليج ها باشه گه در سخت افزاري خودش اينکارو ميکنه.
    اميدوارم سوالتونو درست متوجه شده باشم :redface:
    راجبه ريستارت هم بيشتر در خواندن استفاده ميشه
    مراحل خوندن هم به شکل زيره
    1-استارت
    2-ادرس قطعه براي نوشتن
    3-ادرس حافظه قطعه براي خواندن
    4-ريستارت
    5-ادرس قطعه جهت خواندن
    6-خواندن ديتاي مورد نظر
    7-استاپ
    جواب بعضي حرفا فقط يه نفس عميقه ، بذار تو دلت بمونه...
  3. #3
    2013/02/26
    133
    4

    پاسخ : i2c نرم افزاری و ds1307

    به به سلام دوست گلم ...علی جون خوبی ؟خَشِت میگذره؟
    حقیقتش این موضوع به طور غیر منطقی به نتیجه رسید.یعنی حقیقتش من دلیل منطقی براش پیدا نکردم.اینو حتی از بربچ واقعا اینکاره باز (کسایی که چندین سال فقط پیک کارکردنو غولن برا خودشون)پرسیدم .متاسفانه همشون در کمال ناباوری به بنده پیشهاد دادن که هیچ وقت از کتابخونه های میکروچیپ استفاده نکن.این درحالی بود که من همیشه میگفتم بالاخره این کتابخونه توسط کسایی نوشته شده که خودشون کارمنده سازنده ی میکرو هستن.به یکیشونم که اینو گفتم یارو به طعنه گفت این کتابخونه ها رو بنظر میاد یه چند تا بچه نوشتن :eek: oo:
    خلاصه امر اینکه سیدم اینو نوشته بود یه چک با برنامه اون که کردم به این نتیجه رسیدیم در ابتدا اگر بجای استارت از ریستارت استفاده بشه کار میکنه .من حتی سورس کتابخونه رو هم بررسی کردم ولی باز نفهمیدم چرا چرا با استارت کار نمیکنه!!
    اون سایتی هم گفتم اینه :
    http://picforum.ric323.com/viewtopic.php?f=45&t=79
    خوندن نظرات اونا خالی از لطف نیست.بعضا نکات جالبی گفتا :wow: :read:
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران
  4. #4
    2013/04/25
    کرمان
    44
    1

    پاسخ : i2c نرم افزاري و ds1307

    سلام و تشکر
    اين حرفتون رو قبول ندارم
    درسته کتابخونه هاشو زيادي پيچونده ولي اگه دقيق واسه کارت درستش کني کار ميکنه
    البته i2c نرم افزاريش من يه ايراد ازش گرفتم و اونم در موقع خوندن ديتا اکناليج يا نات اکناليجو نميشه فرستاد که خب در بعضي مواقع باعث افزاريش کدت ميشه
    اين حرفو خيلي از دوستاي ديگه هم بهم زدن که کتابخونه هاش درست کار نميکنه ولي من تا الان فقط همين ايرادو تونستم ازش بگيرم
    فقط يه نکته تو هدر sw_i2c بايد ورژن 2 رو پين هاشو تعريف کني
    البته اگه اشتباه نکنم خيلي وقت پيش تست کردم ولي دقيقا طبق همون مراحلي که گفتم نوشتم و کار کرد بدون مشکل
    متاسفانه در يه اشتباه تمام سورس کدهام به هوار رفت :cry:
    ايشاا.. دو مرتبه که نوشتم اينو حتما تست ميکنم و همين جا ميذارم پروژه اش رو.
    يا علي.
    جواب بعضي حرفا فقط يه نفس عميقه ، بذار تو دلت بمونه...
  5. #5
    2006/08/16
    867
    17

    پاسخ : i2c نرم افزاری و ds1307

    لطفاً این دوتا رو امتحان کن. شاید ایراد معلوم شه.
    ویرایش: فکر کنم ایراد اینه که شما قبل از فراخوانی توابع i2c، پین ها رو بصورت صریح بعنوان خروجی تعریف و 1 منطقی نمیکنید.
    تو همون انجمن picforum هم بهتون همینو گفتند ولی ظاهراً شما توجه نکردید.
    کد:
    SWStartI2C();
    SCLK_LAT = 0;
    CLOCK_LOW;
    Delay10TCY();
    var=SWPutcI2C(0xD0);// control byte
    کد:
    SCLK_LAT = 0;
    DATA_LAT = 0;
    DATA_HI;
    CLOCK_HI;
    Delay10TCY();
    SWStartI2C();
    var=SWPutcI2C(0xD0);// control byte

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  6. #6
    2013/02/26
    133
    4

    پاسخ : پاسخ : i2c نرم افزاری و ds1307

    نقل قول نوشته اصلی توسط freedom_truth
    لطفاً این دوتا رو امتحان کن. شاید ایراد معلوم شه.
    ویرایش: فکر کنم ایراد اینه که شما قبل از فراخوانی توابع i2c، پین ها رو بصورت صریح بعنوان خروجی تعریف و 1 منطقی نمیکنید.
    سلام دوست عزیز .این اتفاقات که خروجی باشه یا ورودی و صفر و یک کردنشون که تو توابع کتابخونه صورت میگیره و ثابت نیست.شما یه وقت میخوای اکنالج بگیری یا بفرستی و یه وقت میخوای دیتا بفرستی .به علاوه من گفتم که با ریستارت کار میکرد یعنی همه چیز اوکیه فقط با استارت کار نمیکنه .یعنی انگار یه بار باید خاموش روشن کنی تا بتونی باهاش کار کنی مثه پسر گلی نمیشه همون بار اول روشنش کردو کار کنه بهر حال ممنون از وقتی که گذاشتید :nerd: :wow:
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران
  7. #7
    2006/08/16
    867
    17

    پاسخ : پاسخ : i2c نرم افزاری و ds1307

    نقل قول نوشته اصلی توسط phoenix2000
    این اتفاقات که خروجی باشه یا ورودی و صفر و یک کردنشون که تو توابع کتابخونه صورت میگیره و ثابت نیست.
    تا اونجایی که من بررسی کردم اینطور نیست. شما یک لطف شخصی به من بکنید و قطعه کد دوم رو تست بفرمایید و نتیجه رو بگید.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  8. #8
    2013/02/26
    133
    4

    پاسخ : پاسخ : i2c نرم افزاری و ds1307

    نقل قول نوشته اصلی توسط freedom_truth
    تا اونجایی که من بررسی کردم اینطور نیست. شما یک لطف شخصی به من بکنید و قطعه کد دوم رو تست بفرمایید و نتیجه رو بگید.
    کامپایلر شما چیه؟(من از c18 استفاده میکنم)
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران
  9. #9
    2006/08/16
    867
    17

    پاسخ : پاسخ : i2c نرم افزاری و ds1307

    نقل قول نوشته اصلی توسط phoenix2000
    کامپایلر شما چیه؟(من از c18 استفاده میکنم)
    من کامپایل نکردم کد رو. تحلیل کردم. (من معمولاً از CCS استفاده میکنم.)
    شما لطفاً قطعه کد دوم رو تست بفرمایید و نتیجه رو اعلام کنید.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  10. #10
    2013/02/26
    133
    4

    پاسخ : i2c نرم افزاری و ds1307

    oopss
    ببخشید من اول فکر کردم شما این کدایی رو که گذاشتید مربوط به کامپایلر دیگه ای هستش :cry:اخه من اصولا این دستورات رو حفظ نمیکنم و متاسفانه دقت هم نکردم .بازم عذر می خوام .بعد از اون هم متشکرم از اینکه کمک میکنید :bye
    مساله ی سومی هم وجود داره و اونم اینه که الان امکانات سخت افزاریش موجود نیست و همونطور که مشخصه این پست مربوط به چند وقت پیشه که امکاناتش بود :read:
    اما ...
    اما پس از بررسی بنده ، بصورت تئوری و با استفاده از تجربیات قبلی باید بگم بله کد شما یجورایی کار میکنه البته با تغییراتی .یعنی ماهیت کلی و کاری که شما می خواستید انجام بدید درسته و منجر به برقراری ارتباط میشه ،هر چند که کد بصورت دستوری باید تغییراتی بکنه.و این کار شما دقیقا همون کاری است که تو تابع ریستارت صورت میگیره اونجا هم اول خط دیتا رو خروجی و صفر میکنه و بعد ورودی میشن که منجر به یک شدن خط میشه چراکه پول پن.و سپس خط دیتا رو صفر میکنه . در واقع همون کارهای شما داخل تابع ریستارت صورت میگیره .در زیر هم تابع ریستارت و استارت اورده شده ان. اما سوالی که باقی میمونه اینه که با این حساب میکروچیپ چرا همجین تابعی رو اصلا گذاشته .منظورم استارته .اخه این کجا بدرد میخوره وقتی باهاش همون اول کار هم نمیشه کار کرد؟در ضمن این رو هم بگم اگه دیتا شیت رو نگاه کنید متوجه میشید بعد از ریست و بالا امدن میکرو همه ی پایه ها ورودی اند و این یعنی خط کلاک و دیتا یک می باشند.پس یه جورایی باید استارت کار کنه ولی انگار اینکه اول خط دیتا یک بشه در حالی که کلاک صفره و بعد خط کلاک یک بشه اهمیت بالایی داره که بدون رعایتش ارتباط صورت نمیگیره.
    کد:
    void SWRestartI2C( void )
    {
     SCLK_LAT = 0;          // set clock pin latch to 0
     CLOCK_LOW;           // set clock pin to output to drive low
     DATA_HI;            // release data pin to float high
     Delay10TCY();          // user may need to modify based on Fosc
     CLOCK_HI;            // release clock pin to float high
     Delay10TCY();          // user may need to modify based on Fosc
     DATA_LAT = 0;          // set data pin latch to 0
     DATA_LOW;            // set data pin output to drive low
     Delay10TCY();          // user may need to modify based on Fosc
    }
    void SWStartI2C( void )
    {
     DATA_LAT = 0;          // set data pin latch to 0
     DATA_LOW;            // set pin to output to drive low
     Delay10TCY();          // user may need to modify based on Fosc
    }
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11

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

  1. راه اندازی سخت افزاری آی سی DS1307
    توسط gtna در انجمن میکروکنترلرهای AVR
    پاسخ: 36
    آخرين نوشته: 2019/11/22, 13:45
  2. توقف خطوط نرم افزاری در i2c نرم افزاری
    توسط حامد رحیمی در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2015/03/20, 21:59
  3. قفل نرم افزاری
    توسط asmira در انجمن C , C++ , C#
    پاسخ: 0
    آخرين نوشته: 2015/03/08, 11:39
  4. پاسخ: 2
    آخرين نوشته: 2008/10/01, 01:41
  5. اشکال نرم افزاری یا سخت افزاری در usbasp
    توسط hosseinamini در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2008/08/11, 23:40

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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