عرض من الكريستال السائل البيانات eeprom مساعدة..

P

piscaroy

Guest
hihi ، أريد أن عرض البيانات المخزنة في EEprom ولكن لا اعلم كيف تأتي أنا لا يوجد خطأ.. أنا غير متأكد ما إذا كان ط رموز مكتوبة issit.. الصحيح يمكن أن تساعدني في اسرع وقت ممكن.. أنا باستخدام C18 البرمجي لpic18f452 أدناه هنا هو مصدر المدونات..

************************************************** *********
غير الموقعة ReadEEPROM شار (الحرف غير الموقعة العنوان)
(

EEADR = العنوان ؛

EECON1bits.EEPGD = 0 ؛ / / وصول إلى البيانات EEPROM
EECON1bits.CFGS = 0 ؛ / / وصول برنامج فلاش / بيانات EEprom الذاكرة

EECON1bits.RD = 1 ؛ / / تمكين اقرأ
عودة EEDATA ؛ / / هنا يتم تخزين البيانات
)

WriteEEPROM اغية (غير الموقعة تشار العنوان ، تشار بيانات غير موقعة)
(

EEADR = العنوان ؛
EEDATA = بيانات ؛
EECON1bits.EEPGD = 0 ؛
EECON1bits.CFGS = 0 ؛
EECON1bits.WREN = 1 ؛

INTCONbits.GIEH = 0 ؛ / / تعطيل المقاطعات
INTCONbits.GIEL = 0 ؛

EECON2 = 0x55 ؛
EECON2 = 0xAA ؛

EECON1bits.WR = 1 ؛
EECON1bits.WREN = 0 ؛ / / تعطيل يكتب عن الكتابة كاملة
)

/ / البرنامج للالرئيسي

باطلة الرئيسي () (
قيمة كثافة العمليات ؛
EEpromInit () ؛
LCDinit () ؛
القيمة = 0 ؛

مرة أخرى :

في حين أن ((قيمة> 0) & & (قيمة <3))
(
WriteEEPROM (EEADR ، والقيمة) ؛ قيمة ؛
)

ReadEEPROM (EEADR) ؛

اذا كان ((EEDATA = 0) & & (EEDATA = 1))putrsXLCD ( "القيمة = ٪ د" ، EEDATA) ؛ <--- خطأوالا اذا ((EEDATA> 1) & & (EEDATA <3))putrsXLCD ( "ميد القيمة = ٪ د" ، EEDATA)؛<---- خطأأيضا
putrsXLCD ( "قيمة كبيرة جدا") ؛
القيمة = 5 ؛ / / زيادة القيمة الأولية للاختبار... إذا المقبل تشغيل شاشات الكريستال السائل يجب عرض "قيمة كبيرة جدا"

غوتو مرة أخرى ؛

في حين (1) ؛
)
************************************************** ********

 
أولا وقبل كل روتينك WriteEEPROM لانتظار بت منتديات مملكة البحرين دون إذن مسبق من الأجهزة قبل كتابة (المقبل) على databyte :

WriteEEPROM اغية (غير الموقعة تشار العنوان ، تشار بيانات غير موقعة)
(

EEADR = العنوان ؛
EEDATA = بيانات ؛
EECON1bits.EEPGD = 0 ؛
EECON1bits.CFGS = 0 ؛
EECON1bits.WREN = 1 ؛بينما (EECON1bits.WR)؛ / / إعادة تعيين كلمة الوكالة هنا إذا كنت تستخدم!INTCONbits.GIEH = 0 ؛ / / تعطيل المقاطعات
INTCONbits.GIEL = 0 ؛

EECON2 = 0x55 ؛
EECON2 = 0xAA ؛

EECON1bits.WR = 1 ؛
EECON1bits.WREN = 0 ؛ / / تعطيل يكتب عن الكتابة كاملة
)

القادم من فضلك بعد روتينك putrsXLCD حتى يمكننا أن نلقي نظرة على ذلك.

مع أطيب التحيات

 
/ / initialisation شاشات الكريستال السائل

DelayPORXLCD باطل ()
(
Delay1KTCYx (15) ؛ / / تأخير 15ms

)باطل DelayXLCD (الفراغ)
(
Delay1KTCYx (5) ؛
)DelayFor18TCY باطلة (الفراغ)
(
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
نوب () ؛
عودة ؛

)

باطل LCDinit (الفراغ) (

بورتا = 0x00 ؛

ADCON1 = 0x0E ؛

OpenXLCD (0x28) ؛ / / التهيئة 4 شاشات الكريستال السائل واجهة أقل قليلا عاب ،
/ / خط متعددة

DelayXLCD () ؛

putrsXLCD ( "مرحبا بكم = دال") ؛ / / ضع سلسلة في سطر 1

DelayXLCD () ؛

)
هذا هو الروتين شاشات الكريستال السائل

 
ويجب أن أقول إنني لا تستخدم C18 (ولكن مرحبا التكنولوجيا مبادئ العقود التجارية الدولية)...

ولكن انظر هنا :
http://forum.microchip.com/tm.asp؟m=44427

ويبدو أن هذا التعامل مع مشكلتك :
putsXLCD
putrsXLCD

مع أطيب التحيات

 
شكرا جزيلا لمساعدتكم جيم رجل =)..

لكنني غير قادر على معرفة السبب الذي يجعلني غير قادر على عرض * القيمة = (البيانات في EEprom) * باستخدام putrsXLCD أو putsXLCD... هو انه ليس هناك طريقة أخرى للقيام.. وأعتقد أنني فعلت وات هو الخطأ (putrsXLCD ( "القيمة = ٪ د "والبيانات)) <-- أود أن أقول الشيء ط وان العرض هو المخزنة في بيانات... عندما أفعل هذا الخطأ أنهم موجه قائلا * الكثير من الحجج في استدعاء دالة *... ولكن عندما تغير إلى putrsXLCD (البيانات (على ما يبدو لتكون على ما يرام.. انها فقط حصلت على إنذار (المشبوهة مؤشر التحويل)... أي فكرة عمن قد يكون قادرا على مساعدتي في ذلك؟

روي

 
إذا كنت تستطيع تعريف وظيفة من وظائف اثنين من أنني قد أكون قادرة على مساعدتك.

وأعتقد أن هذه المهام لا يمكن إلا أن عرض سلاسل؟في رام رمز أو حتى إذا كنت تريد عرض قيمة "كسلسلة" يجب إجراء سلسلة من القيمة الخاصة بك.

طريقة واحدة للقيام بذلك هي لاستخدام الدالة sprintf الذي يحول قيمة في سلسلة إنهاؤها فارغة.

آمل أن يساعد هذا

 
putrsXLCD
******************************************
الوظيفة : كتابة سلسلة لشركة هيتاشي HD44780 تحكم شاشات الكريستال السائل.
وتشمل : xlcd.h
النموذج : باطل putsXLCD (تشار * العازلة) ؛
باطل putrsXLCD (const المضغوط المخزن تشار *) ؛
الحجج : العازلة
المؤشر إلى أحرف المراد كتابتها إلى وحدة تحكم شاشات الكريستال السائل.

ملاحظات : هذه الوظيفة يكتب سلسلة من الأحرف الموجودة في المخزن ل
هيتاشي للتحكم HD44780 شاشات الكريستال السائل.فإنه يتوقف عند انتقال
حرف فارغة تم مصادفة.الحرف فارغة لا
أحال.
سلاسل البيانات الموجودة في ذاكرة يجب أن تستخدم مع يضع
الإصدارات من هذه المهام.
سلاسل الموجود في ذاكرة البرنامج ، بما في ذلك سلسلة حرفية ،
ينبغي أن تستخدم مع الإصدارات putrs من هذه المهام.
اسم الملف : putsxlcd.c
putrxlcd.c
رمز مثال : mybuff تشار [20] ؛
putrsXLCD (مرحبا العالم) ؛
putsXLCD (mybuff) ؛

 
وأعتقد أن هذه 2 لا يمكن إلا أن عرض سلاسل.. كيف يمكنني استخدام الدالة sprintf لتحويل السلاسل إلى فارغة.. هل هو كل مترجم regconise sprintf؟لا اعلم شيئا عن هذا.. وظيفة إذا كان يمكن أن تعمل هذه الوظيفة يمكن أن يعلمني كيفية استخدامها... آسف جدا لمتاعب ش الكثير الكثير.. thankx

 
موافق كما قلت من قبل يجب ان تعطي الدالة مؤشر إلى المضغوط (أو ذاكرة الوصول العشوائي)
، وأنه ستتم طباعة السلسلة (أشار بواسطة مؤشر) لشاشات الكريستال السائل.

وبالتالي لا يمكنك إعطاء مؤشر وقيمة لهذه الوظيفة

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="حزين" border="0" />أول طباعة النص ثابت ومكالمة ثانية مع القيمة التي تم تحويلها إلى سلسلة.

على سبيل المثال :
العازلة تشار [10] ؛
قيمة تشار = 10 ؛

putrsXLCD ( "القيمة =") ؛
sprintf (العازلة ، "٪ د" ، والقيمة) ؛ / / تحويل القيمة إلى سلسلة في رام
putsXLCD (منطقة عازلة) ؛

أو أفضل الكتابة الدالة الخاصة بك لتحويل وطباعة القيمة...

مع أطيب التحيات

 
أنا موافق جرب التحويل

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="ابتسامة" border="0" />

.. الشكر الكثير لمساعدة..

روي

 
مرحبا ، أنا حاولت تحويل ش سبيل المثال أعطى مي.. انها نجحت في بناء ولكنه موجه تحذيرا يقول الكلمة من دون وظيفة النموذج... وات يعني ذلك؟ط isit الحاجة إلى إدراج بعض الملفات رؤوس؟

 
يجب أن تتضمن تعريفا للsprintf ليس لدي أي فكرة في الملف الذي هو في مترجم الخاص بك.ابحث عن وثائق sprintf...

آمل أن يساعد هذا

 
هم آسف أنا لا أميل الحصول ش وات يعني التعاريف... (الثابتة والمتنقلة مي العفو يسبب ايم جديدة للغة جيم issit.. لا بد لي من تعريف # sumthin sprintf؟أو تضمين # <sumthing>... وات ش لا يجب أن تتضمن لمرحبا التكنولوجيا؟ولقد بحثت sprintf * * تم العثور على أي شيء... ط mayb البحث في الطريق الخطأ.. دليل الثابتة والمتنقلة مي thanx

تمنيات

 
حسنا ، أنا تحميلها ودرس C18 دليل المكتبات

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="ابتسامة" border="0" />على سبيل المثال :
# تشمل <stdlib.h>/ / لbtoa ، itoa ، ltoa
العازلة تشار [10] ؛
قيمة تشار = 10 ؛

putrsXLCD ( "القيمة =") ؛
putsXLCD (btoa (القيمة ، وعازلة)) ؛

استخدام btoa للمتغيرات تشار ، itoa للمتغيرات صحيحا وltoa للمتغيرات صحيحا طويلة والحرص على أن العازلة [] ليست صغيرة جدا (في حالة حدوث متغيرات صحيحا طويلة).

يعمل هذا الأمل ويساعدك على البدء

 
حتى في حالة لمتغيرات صحيحا طويلة... يجب أن أضع مثل المتبادل؟ (أود أن أقول أكثر 8bits دن)

العازلة تشار [1000] ؛

 
لا صحيحة طويلة (باستخدام 32 بت) يمكن الحصول على -2147483647 لذلك أنت في حاجة إلى أقصى حجم المخزن المؤقت من 12 (بما في ذلك إنهاء 0x00).

إذا كنت تعرف العازلة تشار [15] كنت على الجانب الآمن

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="ابتسامة" border="0" />مع أطيب التحيات

 
putrsXLCD () : قمت بتوفير المؤشر الذي يدل على البرنامج * * موقع الذاكرة.

putsXLCD () : كنت توريد مؤشر التي تشير إلى ذاكرة الوصول العشوائي * * الموقع.

مكتبة C18 لم تقدم أي وظيفة لEEROM الوصول.من الصعب أن يكون لديك رمز بنفسك.

ويساعد هذا الأمل.

 
للأسف رقاقة جيم - 18 لا تدعم تنسيق الإخراج

 
مرحبا شباب ، thankx على كل ما تبذلونه replys... ولكن أعتقد أنني في حاجة إلى بعض الوقت لهضم ما يعني كوس يا رفاق.. ايم جديدة جدا لجيم T_T... اقدر كل ما تبذلونه من يساعد

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="ابتسامة" border="0" />شكرا جزيلا ~

 

Welcome to EDABoard.com

Sponsor

Back
Top