سلام دوستان ، من تو برنامه زیر میتوانم تبادل اطلاعات کنم ولی حتی اگه ادرس رو در سلیو نا هماهنگ با مستر بزنم بازم دریافت دیتا انجام میشه.
برنامه مستر ( با زدن کلید A0 یک پالس به ادرس H30 و حاوی عدد 122 برای سلیو فرستاده میشه )
Config Sda = Portb.1
Config Scl = Portb.0
Config I2cdelay = 10
I2cinit
Do
If Pina.0 = 1 Then
i2cstart
I2csend &H30 , 122
end if
Loop
برنامه سلیو ( با اینکه ادرسش با ادرس مستر نمی خونه H20 بازم جواب رو به من میده )
Config Sda = Portb.1
Config Scl = Portb.0
Config I2cdelay = 10
I2cinit
dim A as byte
Do
Bitwait Pinb.0 , Reset
i2cstart
I2creceive &H20 , A
Locate 1 , 1
Lcd A
Loop
+++++++++++++++++++++++++++++++
توضیحات بیشتر:
مدار رو بدون کلید بدون bitwait با ادرس های مختلف،با یا بدونه i2cstart و i2cstop به صورت چند سلیوی در مدار و و و... تست کردم بازم جواب درست رو به من میده! به عبارتی وقتی دو تا میکرو سلیو با ادرس متفاوت هم میزارم تو مدار برای هر دو فرستاده میشه!
سوال دوم! ربطی به موضوع بالا نداره ولی کلا به I2C lمربوطه
آیا برنامه سلیو خودش بر روی خط i2creceive متوقف میشه تا دیتا رو بگیره بعد بره خط بعد؟ (مثل دستور Input که تا دریافت انجام نشه به خط بعد نمیره ). ایا مجبوریم همیشه از bitwait استفاده کنیم؟ اینتراپتی هم وجود نداره؟
یه تصوری داشتم اینه که اطلاعات بر روی باس با زدن i2cstart و i2csend توسط مستر اینقدر می چرخه که یا یک سلیو از اون استفاده کنه یا اینکه خود مستر i2cstop رو بفرسته. ایا این تصور اشتباه است؟
اگر اشتباهه پس به محض ارسال دیتا توسط مستر فورا و بلافاصله سلیو باید بگیره اونو که از دست نره دیگه؟ حتی اجازه 5 میلی ثانیه wait هم نباید داشته باشه ها؟
سوال بعد.
i2csend , i2creceive چه فرقیایی با i2crbyte , i2cwbyte دارن.؟
همچنین دستور i2csend , i2creceive نیاز به i2cstart , stop ندارن درسته؟ چون توی دیباگر پروتوس اگه بازم استارت بزنیم Sr فرستاده میشه (repated start)
سوال بعد.
هر کاری میکنم در دیباگر پروتوس دو تا علامت سوال اول هر خطی میاد! ولی ارسال اطلاعات انجام میشه ایا این مرسومه؟
من ادمی نیستم که زیاد تو فروم پست بزنم، معمولا اینقدر بالا پایین میکنم تو فروم که یکی مثل من مشکل داشته باشه، نشد تو کل نت سرچ میکنم نشد خودم سعی میکنم! ولی واقعا ندیدم این سوالارو اگه ممکنه هر بخشی از سوالمو میتونید جواب بدید ممنون میشم
اگر کسی نمونه مثال با بسکام در رابطه با i2c داره ممنون میشم بزاره! از این مثال الکیا نه ها
کسی مثال شبکه ی از میکرو ها داره ؟
برنامه مستر ( با زدن کلید A0 یک پالس به ادرس H30 و حاوی عدد 122 برای سلیو فرستاده میشه )
Config Sda = Portb.1
Config Scl = Portb.0
Config I2cdelay = 10
I2cinit
Do
If Pina.0 = 1 Then
i2cstart
I2csend &H30 , 122
end if
Loop
برنامه سلیو ( با اینکه ادرسش با ادرس مستر نمی خونه H20 بازم جواب رو به من میده )
Config Sda = Portb.1
Config Scl = Portb.0
Config I2cdelay = 10
I2cinit
dim A as byte
Do
Bitwait Pinb.0 , Reset
i2cstart
I2creceive &H20 , A
Locate 1 , 1
Lcd A
Loop
+++++++++++++++++++++++++++++++
توضیحات بیشتر:
مدار رو بدون کلید بدون bitwait با ادرس های مختلف،با یا بدونه i2cstart و i2cstop به صورت چند سلیوی در مدار و و و... تست کردم بازم جواب درست رو به من میده! به عبارتی وقتی دو تا میکرو سلیو با ادرس متفاوت هم میزارم تو مدار برای هر دو فرستاده میشه!
سوال دوم! ربطی به موضوع بالا نداره ولی کلا به I2C lمربوطه
آیا برنامه سلیو خودش بر روی خط i2creceive متوقف میشه تا دیتا رو بگیره بعد بره خط بعد؟ (مثل دستور Input که تا دریافت انجام نشه به خط بعد نمیره ). ایا مجبوریم همیشه از bitwait استفاده کنیم؟ اینتراپتی هم وجود نداره؟
یه تصوری داشتم اینه که اطلاعات بر روی باس با زدن i2cstart و i2csend توسط مستر اینقدر می چرخه که یا یک سلیو از اون استفاده کنه یا اینکه خود مستر i2cstop رو بفرسته. ایا این تصور اشتباه است؟
اگر اشتباهه پس به محض ارسال دیتا توسط مستر فورا و بلافاصله سلیو باید بگیره اونو که از دست نره دیگه؟ حتی اجازه 5 میلی ثانیه wait هم نباید داشته باشه ها؟
سوال بعد.
i2csend , i2creceive چه فرقیایی با i2crbyte , i2cwbyte دارن.؟
همچنین دستور i2csend , i2creceive نیاز به i2cstart , stop ندارن درسته؟ چون توی دیباگر پروتوس اگه بازم استارت بزنیم Sr فرستاده میشه (repated start)
سوال بعد.
هر کاری میکنم در دیباگر پروتوس دو تا علامت سوال اول هر خطی میاد! ولی ارسال اطلاعات انجام میشه ایا این مرسومه؟
من ادمی نیستم که زیاد تو فروم پست بزنم، معمولا اینقدر بالا پایین میکنم تو فروم که یکی مثل من مشکل داشته باشه، نشد تو کل نت سرچ میکنم نشد خودم سعی میکنم! ولی واقعا ندیدم این سوالارو اگه ممکنه هر بخشی از سوالمو میتونید جواب بدید ممنون میشم
اگر کسی نمونه مثال با بسکام در رابطه با i2c داره ممنون میشم بزاره! از این مثال الکیا نه ها

دیدگاه