ايران ويج

نسخه‌ی کامل: سوالهای برنامه نویسی با کامپایلر BASCOM
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
سلام....
من چون با بسکام کار میکنم بعضی وقتها یه سری سوال هایی هست که دلیلی برای تایپیک زدن نداره و باید پیغام خصوصی به دوستان بدم تا جوابمو بگیرم...
این تایپیک برا یمطرح کردن این سوال هاست!!
!!
چتی نکنین خواهشا!!!


من برای اینکه توی eeprom میکرو اطلاعاتی رو که دارم رو بریزم میدونم از چه دستوری استفاده کنم!!! ولی میخوام بدمنم به چه صورته!!!

کد:
b=10
writeeeprom b,1
waitms 1000
readeeprom b,1
من چه قد میتونی هی بریزم تو eeprom و بردارم!!!
یه کم توضیح میخوام در مورد این دستورً!!!!
ممنون
محدودیتی نداره !
در حد چن میلیون بار می تونین !!

پیشنهاد می کنم واسه کار با eeprom یه متغیر eeprom بگیرین !!

کد:
dim ali as eram byte

نقل قول از کتاب سعید یه نفر !


کار با حافظه داخلي ميکرو (EEPROM)


تعداد زيادي از ميکرو هاي AVR داراي حافظه داخلي مي باشند ، حجم اين حافظه بسته به نوع ميکرو متفاوت است ، اطلاعات اين حافظه بر اثر قطع برق پاک نم يشود و مي تواند تا سالهاي زيادي محفوظ بماند .

EEPROM داخلي ميکرو هميشه اماده به کار است و کافي است شما در آن بنويسيد يا از آن بخوانيد ، نوشتن در EEPROM با دستور زير انجام مي شود :

کد:
Writeeeprom Var , Address

Var: متغير يا عدد ثابتي است که قصد ذخيره آن را داريد.

Address: مکاني از حافظه ميباشد که متغير در آن ذخيره مي شود . (در صورتي که آدرسي درج نشود متغير در اولين مکان خالي ذخيره مي شود و پيدا کردن آن با خداست)

ذخيره متغير اتوماتيک است و اخرين آدرس بستگي به نوع ميکرو دارد ( به ديتا شيت ميکرو مراجعه کنيد).
شما همچنين با دستور زير ميتوانيد اطلاعات داخل حافظه را بخوانيد:

کد:
Readeeprom Var , Address

Var : يک متغير متناسب با مقدار اطلاعات مي باشد ، که اطلاعات خوانده شده از آدرس درج شده ،در آن ريخته مي شود .

Address : آدرسي است که بايد اطلاعات از آن خوانده شود.

مانند:

کد php:
$regfile "m16def.dat"
$crystal 8000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Portd.0 Db5 Portd.1 Db6 Portd.2 Db7 Portd.3 Portd.4 Rs Portd.5
Dim A 
As Byte As Byte
12
Writeeeprom C 
1
Wait 1
Readeeprom A 
1
Locate 1 
Lcd A
End 

در اين مثال مقدار 12 در متغير C ريخته شده است ، من اين متغير را در آدرس 1 حافظه داخلي ذخيره کردم ، و بعد از گذشت 1 ثانيه خانه 1 حافظه را خواندم و حاصل را در متغيرA ريختم و آن را روي LCD نمايش دادم .

همانگونه که مشاهده خواهيد کرد عدد خوانده شده برابر 12 مي شود .

مثال ديگر:

کد php:
$regfile "m16def.dat"
$crystal 8000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Portd.0 Db5 Portd.1 Db6 Portd.2 Db7 Portd.3 Portd.4 Rs Portd.5
Config Adc 
Single Prescaler Auto
Dim A 
As Word As Byte As Byte
Start Adc
Do
Getadc(0) : 2
Locate 1 
Lcd A
Wait 1 
Incr B
If 180 Then
Writeeeprom A 
C
0
End 
If
If 
3 Then
Readeeprom A 
Locate 1 Lcd A
Readeeprom A 
Locate 1 Lcd A
Readeeprom A 
Locate 2 Lcd A
Readeeprom A 
Locate 2 Lcd A
: Else : Loop
End 
If
End 

در برنامه بالا هر سه ساعت يک بار دماي محيط اندازه گرفته مي شود ودر حافظه داخلي ميکرو ذخيره مي شود ، بعد از گذشت 12 ساعت دما هاي ذخيره شده بر روي LCD به نمايش در ميايد .
سلام تو ارتباط i2c از کریستال خارجی استفاده نکردم یعنی این وقت شب نداشتم که بخوام استفاده کنم حالا میکرو تا به این دستور میرسه هنگ میکنه


'I2csend &H40 , A
و خط بعدی رو اجرا نمیکنه به نظر شما دلیلش چیه
ممنون از همه
برای فعال کردن کریستال خارجی چه دستوری استفاده میکنیم...
یا اینکه دستور همونه باید فیوز بیت هاشو دستکاری کنم!؟؟؟درسته!!!!
با این پروگرانر هاتل من چجوری میتونم کریستال خارجی رو فعال کنم؟؟
ابکا جون رو قضیه کریستال خارجی خیلی بحث شده !
سرچ کنی قبلا گفتم !

همه تیک های cksel رو بردار تو هاتل میشه خارجی فرکانس بالا !!!
اگه یادت نره رایت فیوزبیت رو بزنی !!!



kimiafars عزیز رو بقیه فرکانس های داخلی هم تست کن !!
هیچ دلیل نداره که نشه !!
مرسی گلم داره گیر میده راه نمیده
نقل قول: محدودیتی نداره !
در حد چن میلیون بار می تونین !!
مطمئنی ؟ 100هزاربار درسته ها.؟!
درسته !
صفر زیاد داشتم فکر کردم میلیون هستش !!

نقل قول از دیتاشیت :

کد:
Endurance : 100,000 Write/Erase Cycles
سلام..
من اگه تایمر 2 رو فعال کنم در مگا 32 و به پورت c ال سی دی رو وصل کنم دچار مشکل نمیشه؟؟؟
اخه کریستال ساعت به دو تا پایه c6,c7 وصل میشه!!!
من پایه های ال سی دیم رو به c0 تا c.5 وصل کردم!!!
الات تو ال سی دی هیچی نشون نمیده!!!! وقتی یه برنامه کوچیک مینویسم که فقط یه کلمه رو نشون بده مشکلی نداره و نشون میده ولی وقتی تایمر رو فعال میکنم هیچی نشون نمیده(jtag رو تیکش رو تو پروگرامر هاتل برداشتم تا غیر فعال بشه)
نه !
دچار مشکل نمیشه !

مشکلی نداره !
دقت کنی من تو خیلی از مدارهایی که گذاشتم همین کار رو کردم !

پس چرا ال سی دی هیچی نشون نمیده؟؟
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23