قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:100
قديم 12-12-2009, 01:20 PM المشاركة 17   
Thumbs up




إنت فين يا بشمهندس شيمي .... و الله ليك وحشة ....
أنا جربت موضوع الـ48 و لكن منفعش ...
شكلي كدة عامل حاجة غلط في الكود
هذا هو الكود
كود:
void main()
{
lcd_custom_config(&portb,3,2,1,0,&porta,1,0,2) ;   // LCD Preparation
lcd_custom_cmd(lcd_cursor_off);
option_reg=0B00111111;  
trisb=0;
trisa=1;
int x=0;
float flow=0;
while(1)
{
x=tmr0;
tmr0=0;
flow=x*3.6;
lcd_custom_out_cp(48+flow) ;
delay_ms(1000);
}
}
لو أنا غلطان ... ودة هو الأكيد .... صححلي
و بعدين إبقى بص علينا دايما كدة ... متبقاش زي القمر ...من الشهر للشهر ههههههههههه

صحيح ... إية الفرق بين لما أقول
كود:
char x;
و أقول
كود:
char *x;
ربنا يكرمك يااارب

انا يوميا فى القرية

الموضوع 48 انا مجربه كتير وشغال

معناه كالاتى :
الشاشة لازم لو عاوز اعرض عليها 0 مثلا لازم ابعتلها ال ASCII بتاع الصفر

لو بصيت فى جدول ال ASCII
هتلاحظ ان الصفر المقابل له هو 48
والواحد 49
وهكذا
يعنى بجمع 48

اما بالنسبة للفرق بين char a
,
char *a

فهذا يسمى

Pointers
Pointers are special objects for holding (or “pointing to”) memory addresses. In the mikroC PRO for PIC, address of an object in memory can be obtained by means of an unary operator &. To reach the pointed object, we use an indirection operator (*) on a pointer
مع خالص امنياتى

مهندس
احمد الشيمى
.

اعلانات

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:105
قديم 12-12-2009, 01:22 PM المشاركة 18   
افتراضي


السلام عليكم
استخدم الايعاز التالى
كود:
longtostring(flow,matrix);
وبعد ذلك يمكن الكتابة مباشرة على ال lcd
كود:
lcd_out(1,1,matrix)
طريقة الاستاذ شيمى تصلح فى حالة العدد المفرد من 0-9
وفق الله الجميع لكل خير

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:100
قديم 12-12-2009, 03:06 PM المشاركة 19   
افتراضي


السلام عليكم
استخدم الايعاز التالى
كود:
longtostring(flow,matrix);
وبعد ذلك يمكن الكتابة مباشرة على ال lcd
كود:
lcd_out(1,1,matrix)
طريقة الاستاذ شيمى تصلح فى حالة العدد المفرد من 0-9
وفق الله الجميع لكل خير
تمام جدا
ولكن ممكن ان نعرض بهطريقتى كل ما نريد

الموضوع سهل

فلو اننا نريد ان نعرض 20
كود:
كود:
char l=20;
k=l/10;
Lcd_Chr_CP(k+48);
k=l%10;
Lcd_Chr_CP(k+48);
الامر ما هو الا عمليات حسابية سهلة

للعلم

استخدام
longtostring

قد يستهلك ممورى اكبر

مع تحياتى

احمد الشيمى


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:105
قديم 12-12-2009, 03:50 PM المشاركة 20   
افتراضي


تسلم با غالى على المعلومات الجميلة


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:100
قديم 12-12-2009, 05:14 PM المشاركة 21   
افتراضي


تسلم با غالى على المعلومات الجميلة

لاشكر على واجب

ربنا يكرمك

ويزيد من امثالك

حتى نرقى


الصورة الرمزية MYM
MYM
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
الدولة: مصر
المشاركات: 337
نشاط [ MYM ]
قوة السمعة:0
قديم 14-12-2009, 05:39 PM المشاركة 22   
x4 بارك الله فيكم


و الله و الله يا جماعة .. إن (الشيمي) و (روبوتا) من الناس الأفاضل المحترمة ....
و أنا شاكر ليهم جدا .... و الله أدعيلهم دعوة من قلبي إن ربنا يوفقهم و يبارك في علمهم و ينفعهم بية في الدنيا و الآخرة
و أنا آسف إني إتأخرت شوية في الرد لأنني كنت تعبت شوية الفترة اللي فاتت و إتأخرت على شكرهم ...
ربنا يكرمهم و يبارك فيهم


الصورة الرمزية MYM
MYM
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
الدولة: مصر
المشاركات: 337
نشاط [ MYM ]
قوة السمعة:0
قديم 17-12-2009, 06:51 PM المشاركة 23   
ha



فلو اننا نريد ان نعرض 20
كود:
كود:
char l=20;
k=l/10;
Lcd_Chr_CP(k+48);
k=l%10;
Lcd_Chr_CP(k+48);
الامر ما هو الا عمليات حسابية سهلة

للعلم

استخدام
longtostring

قد يستهلك ممورى اكبر

مع تحياتى

احمد الشيمى
السلام عليكم جميعا .... عامل إية يا بشمهندس أحمد الشيمي و البشمهندس روبوتا ... يا رب تكونوا بخير و بصحة

دلوقتي يا إخوة في موضوع العرض على الشاشة ...فعلا دالة التحويل من long الى String يستهلك قدر كبير من المساحة الخاصة لكتابة الكود على البيك
و لكن
ما العمل .... خصوصا و أنا لا أعرف ما القيمة التي ستظهر ((لأنها متغير وهو ناتج من حل معادلة)) .... صحيح ممكن أعرض 20 بالطريقة الموضحة من الشيمي .....
و لكن أنا لا أعرف إن كانت 20 أو 200...... ساعدوني في هذا الأمر....
و هناك شيئ آخر
بخصوص التحويل من الـ long الى الـString يجب حفظ الناتج في مصفوفة ...
جربتها و بالفعل أظهرت القيمة على الشاشة ....و كانت مصفوفة من اربعة عناصر
كود:
lcd_out(1,1,x[4])

المشكلة أن الرقم الذي يظهر على الشاشة لا يظهر من بداية السطر كما هو موضح بالكود و إنما يظهر بعد مسافة تقريبا 4 او 5 أحرف ... تقريبا في نصف الشاشة ...
قولت أقلل المصفوفة من 4 الى 2 .... فلم أجد شيئا يظهر على الشاشة اصلا ..هههههههه.
ما العمل ......؟؟؟ ؟؟




robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:105
قديم 17-12-2009, 07:44 PM المشاركة 24   
افتراضي


كيف حالك اخى محمد
بالنسبة للمشكلة الثانية فسبب المشكلة وجود فراغات والحل هو ازالة الفراغات بالكود التالى

كود:
char i,j;
char freq[12];
j=0;
for(i=0;i<=11;i++)
{
if(matrix[i] != ' ')
{
lfreq[j]=matrix[i];
j++;
}
}
بعد ذلك يمكن الكتابة مباشرة على ال lcd
كود:
lcd_out(1,1,freq);
وسيظهر الرقم من اول السطر ان شاء الله
على فكرة هذه الطريقة موجودة فى كتاب Advanced PIC Microcontroller
Projects in C
Dogan Ibrahim
ارجو ان تقراءه فهو كتاب رائع
اما بالنسبة للمشكلة الاولى فسابحث لك عن حل ان شاء الله
بالتوفيق

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 06:47 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025