تعليمات التعامل مع 10bit الموافقة المسبقة عن علم ، شركة تطوير العقبة قيمة الانتاج

S

smartsarath2003

Guest
هاي ،
لقد بنيت 0 - 30V التيار الكهربائي.أريد أن استخدام 7 - عرض الجزء لإظهار الجهد.لذلك اخترتها للاستخدام الموافقة المسبقة عن علم ، 16F876
، باعتبار أنها تمتلك شركة تطوير العقبة 10 بت.القرار الأول الحد الأدنى المطلوب لالجهد هو 0.05V.أنا حولت 0 - 30V ل0 - 5V باستخدام شبكة devider الجهد.
أنا أستخدم المجمع لشركة تطوير العقبة البرمجة والخلط بينه وتحويل الانتاج الى 7 - الجزء.أريد عرض تصل إلى 2 العشرية أي 4x 7 - قطاعات

10 بت مع شركة تطوير العقبة من قيمة الحد الأقصى سيكون 1024 ، والذي هو قيمة 10 بت
وactuval الجهد س / ع سوف تكون [(ADC_Output/1024) * 5] * 6.
كيف يمكن لي أن إنجاز هذا المجمع باستخدام

<img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="تعجب" border="0" />

أي sujjestions / رمز عينة....

كما تم الخلط بين أنا وأنا ذاهب الى جولة قبالة القيمة إلى 2 بعد الأرقام العشرية
فكرتي بعد ذلك واضح ، أي تخزين 4 أرقام في 4 السجلات ونقلها إلى سبعة الجزء عرض
لا يمكن لأحد مساعدتي للخروج من هذا الارتباك بلز...

شكرا
الماضي الذي حرره smartsarath2003 يوم 09 Feb 2005 3:52 ؛ تحرير 1 مرة في الكلية

 
هذه ليست تافهة عملية البرمجة.أنت بحاجة إلى تنزيل أو كتابة بعض إجراءات نقطة عائمة تطفو على سطح الماء وبعض التحويلات السلسلة.
هذا من شأنه أن يكون قطعة من الكعكة لو كنت في برنامج لأنه C.
اقتراحي ، واستخدام مرحبا التكنولوجيا مترجم والكتابة عليه في C.

 
شكرا ،
فأرجو أن نشير إلى بعض الأماكن التي أستطيع تحميل تلك الاشياء.
كما يمكن للمرء أن بلز وظيفة / نعلق أي رموز عينة مع ج - مترجم ، لأنني استخدمت ج - مترجم مرة واحدة فقط
، وهذا أيضا في غاية البساطة
شكرا

 
بعض الغواصات floatpoint يمكنك التحميل من هنا :
(الأدوات اللازمة : GPASM أو MPASM)

http://prdownloads.sourceforge.net/picfloat/picfloat13Mar2004.tgz؟download

 
مرحبا!

فقط لحسابات سهلا بك ، بدلا من استخدام شبكة الجهد المفرق 0 - 30V ل0 - 5V ، أقترح عليك استخدام الحد 0 - 51.15V ل0 - 5V (القسمة على 10.23).
شرح لي : كنت في حاجة الى قرار من 0.05V الخاصة بك في الفولتميتر.وشركة تطوير العقبة قد الخطوات 1023 (وليس 1024).الآن ، وسوف يكون كل خطوة 0.05V.القيمة القصوى التي يمكن أن التدبير هو 1023 × 0.05 = 51.15V.عند تعيين الانتاج الى 30V ، ستقوم شركة تطوير العقبة قياس قيمة 600 (في 2 سجلات العناوين).ولذلك عليك خطوة تقريب وتسهيل الصيغ (للعثور على الجهد الحقيقي ، عن طريق تقسيم العنوان 20).
يمكنك استخدام trimpot لضبط شبكة الجهد المفرق مع الفولتميتر الخارجية للمساعدة في معايرة.

النطاق سيكون :

0V = 0V في مساهمة شركة تطوير العقبة = 0 في سجلات
0.05V = 0.05 / 10.23 = 0.0048876V في مساهمة شركة تطوير العقبة = 1 في سجلات
1V = 0.09775 الخامس في مساهمة شركة تطوير العقبة = 20 في السجلات
3V = 0.293255V في مساهمة شركة تطوير العقبة = 60 في السجلات
10V = 0.9775V في مساهمة شركة تطوير العقبة = 200 في سجلات
30V = 2.93255V في مساهمة شركة تطوير العقبة = 600 في سجلات

 
مرحبا

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

رمز :ADC_Output طويلة ؛ / / هو نتيجة لشركة تطوير العقبة

تعويم ج ؛ / / ج هو نتيجة لحساب الجهدج = [(ADC_Output/1024) * 5] * 6printf (٪ 2.2f ، ج) / / طباعة ج تعويم نتيجة كثافة العمليات مع 2 زائد 2 العشرية
 
هاي rkodaira ،

شكرا لفكرتك.وأعتقد أن هذا يعمل بنفس الطريقة التي احتاج اليها.
لكن الارتباك actuval يكمن في التعامل مع 10 بت نتيجة.وكنت قادرا على تصميم رمز تصل الى 8 بت ، ولكن الخلط بين 10 بت قيمة

<img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="السؤال" border="0" />هل هناك أي algoritham / الأسلوب موجود بالفعل لهذا النوع من المشاكل

شكرا

 
كنت مجرد معالجة 10 بت القيمة بوصفها كثافة العمليات ، والتي هي وحدتي بايت في المجمعين معظم ج للموافقة المسبقة عن علم.ولذلك عليك أن تستخدم 16 بت الروتينية لجهودكم ضرب وقسمة.مخازن والموافقة المسبقة عن علم لكثافة العمليات في شكل endian قليلا ،

 
مرحبا ،

وقد اطلع على هذه المذكرة التطبيق من الرقائق الدقيقة.
آمل أن تساعد.
حظ سعيد.لا تحميل الأمور المتاحة في الإنترنت.تطبيق مذكرة AN557 يمكن التعلم من رقاقةفي المرة القادمة سوف تحصل على إنذار.ندهولم
 
وكنت قادرا على الانتهاء حتى لمدة 8 بت الناتج من شركة تطوير العقبة
هنا هو المكان الذي يوجد فيه عشرة حصلت الخوارزمية

http://www.convict.lu/Jeunes/Math/Fast_operations.htm
http://www.convict.lu/Jeunes/Math/Fast_operations2.htm

لكني لم استطع فهم الرمز ، وكذلك فعل في طريقتي الخاصة

ولكن لا يزال havn't حصلت على أي دليل بشأن قيمة 10 بت

<img src="http://www.edaboard.com/images/smiles/icon_rolleyes.gif" alt="عيون حائرة" border="0" />كما تعلمت من 8 بت شركة تطوير العقبة وأريد أن تجربتها باستخدام سي مترجم كذلك.إذا كان هناك أي واحد أي ملاحظات جيدة / مستندات بشأن كيفية استخدام برنامج ج من قانون الأحوال المدنية ، مترجم ، يمكنك بلز وظيفة هنا.
ويمكنني التعامل على 10 بت قيمة مع ج - أتلست مترجم
شكرا

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />
 
أسهل طريقة ليذهب هو لخلق نظرة متابعة الجدول وقراءة النتائج من هناك.بهذه الطريقة لا تحتاج إلى استخدام أي عمليات حسابية
، وأنت يمكن أن تعمل على النحو بت عديدة كما تريد.
يمكنك تحويل 10 بت إلى 16 بت (2 بايت) عدد = 000000XX مع شركة الخدمات المالية..

 
لقد اثنين من 8 بت السجلات التي كان الإخراج value.When النتيجة هي 0-255 ، وسجل معظم siginificant 0x00.حتى أتمكن من القيام بأي عمليات تصل هناك على register.As أول من قال rkodaira ، وActuval المخرجات الجهد = ADRESHL (الأقل sigificant بايت) / 20
والمشكلة هي كيفية التعامل مع أنها لو كانت النتيجة هي أكبر من 255 ، والذي ينتشر في سجلين

على طاولة البحث ، وأنا في حاجة الى قرار من 0.05V من 0 - 30V.600steps أي.لذلك لا أستطيع حقا البور بحث عن الطاولة.
أي أفكار أكثر

<img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="تعجب" border="0" />
 
مرحبا Smartsarath!الشكر للنقطة.

وعادة ما تستخدم في معالجة مع ADFM تركت له ما يبرره :

ADRESH = 8 بت أكثر أهمية و
ADRESL = 2 بت أقل أهمية (6 مرات تحولت إلى اليسار).

ولكن في حالتك ، وأعتقد أنه من الأفضل استخدام حق لها ما يبررها (ADFM = 0) :

ADRESH = 2 بت أكثر أهمية
ADRESL = 8 بت أقل أهمية

ك نهاية النطاق سيكون 30.00V = 600 في العنوان (2 بايت).

مجرد نقل إلى أخرى نتيجة المتغيرات 2 (8 بت لكل منهما).دعونا نقول :
شركة الخدمات المالية وLSB

فقلت لتقسيم بنسبة 20 للحصول على النتيجة في فولت.ولكن النتيجة يجب أن يعقد الجزء fractionay (خطتان بعد العلامة العشرية).وذلك بدلا من القسمة على 20 ، ومضاعفة النتيجة قبل 5 ((x/20) * 100 = س * 5 ، 8 بت استخدام × 8 بت الروتينية).بهذه الطريقة يكون لديك جزء كسري الذي عقد في 16 بت متغير صحيحا.

على سبيل المثال ، 30V = 600 ديسمبر :
ADRESH = 0000 0010 = 2 التحرك ديسمبر لشركة الخدمات المالية
ADRESL = 0101 1000 = 88 ديسمبر لنقل LSB

LSB ضرب من قبل 5 = 1 1011 1000 أو حمل بن = 1 و 184 في ديسمبر LSB
ضرب شركة الخدمات المالية بنسبة 5 = 0000 1010 = 10 ديسمبر
إضافة إلى قيام شركة الخدمات المالية : 10 1 = 11 ديسمبر (0000 1011 بن)

ولذلك عليك : 11 * 256 184 = ديسمبر 3000 في شركة الخدمات المالية وLSB أو 3000 centivolts

مجرد استخدام الروتيني لفصل الأرقام العشرية في 4 متغيرات (8 بت لكل منهما).البحث عن هذا الروتين) والتحول الفاصلة العشرية وظيفتين (من اليمين أو اليسار).

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

 
حصلت على ذلك ، ولكن أين يذهب تحمل عند تنفيذ عمليات الانتاج أكثر من 8 بت ، أي 5 * 88 ، 11 أو 256 * (11 * 256) 184.
بقدر معرفتي ، وأنا أعرف فقط تحمل العلم سيتم تعيين.ماذا عن قيمة actuval للحمل.هل فعلا تخزينها في أي سجلات spl!لم أكن اهتم هذا يحمل bcos أنا لم يسبق لهم العمل مع مثل هذه الأعداد الكبيرة

اقتباس :

مجرد استخدام الروتيني لفصل الأرقام العشرية في 4 متغيرات (8 بت لكل منهما).
البحث عن هذا الروتين) والتحول الفاصلة العشرية وظيفتين (من اليمين أو اليسار).
 
مرحبا!انها لي مرة أخرى.

في روتين الضرب ، لديك لاستخدام بعض سجل لتخزين ونقل (السلطات) (حتى لو كانت أكبر من 1) ، في كل مرة تحمل يتم تعيين بعد خطوة واحدة في الضرب روتينية ، يجب أن تسجل هذه الزيادة المؤقتة (رام).بعد ويجب أن يضاف إلى هذا أن شركة الخدمات المالية (بعد الضرب من 5).وأعتقد أن تحمل أكبر أن يكون في 4 مايو (بن ل100) ، وذلك لأن 5 * 255 = 1275 أن مقسوما على 256 = 4.98...

نعم ، هناك بعض إجراءات لتحويل تنسيق ثنائي لتنسيق قاعدي أو شيئا من هذا القبيل.

 

Welcome to EDABoard.com

Sponsor

Back
Top