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

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

جرجس جرجس
:: مهندس ::
تاريخ التسجيل: Apr 2009
المشاركات: 17
نشاط [ جرجس جرجس ]
قوة السمعة:0
قديم 15-06-2009, 05:05 PM المشاركة 1   
افتراضي برمجة شاشة lcd Twitter FaceBook Google+



السلام عليكم جميعا

ارجو مساعدتى في تصحيح الخطأ الموجود في هذا الكود المكتوب بلغة الميكروسي


void main()

{
int (x) ;
lcd_init(&portc);
lcd_cmd(LCD_CURSOR_OFF);
lcd_out(1,1,"project of :");
delay_ms(5000);
lcd_cmd(lcd_clear);
lcd_out(1,4,"Multilevel ");
lcd_out(2,1," Pwm inverter ");
delay_ms(5000);
lcd_cmd(lcd_clear);
lcd_Out_Cp("press s1 for run");
lcd_out(2,1,"press s2 for EX");
menu:
lcd_cmd(lcd_clear);
lcd_cmd(LCD_CURSOR_OFF);
Lcd_Out_Cp("menu: ");
lcd_out(2,1,"s1:5l s2:EXIT");
TRISB=0;
trisa=0xff;
if(porta.f0==0)
{
lcd_cmd(lcd_clear);
lcd_Out_Cp("prog of 5l run");

for(x=0;x<1000;x++)
{
//this is the code of my project
PORTB=0;
Delay_us(337);
PORTB=0B00000101;
Delay_us(2717);
PORTB=0B00001001;
delay_us(3889);
PORTB=0B00000101;
delay_us(2667);
PORTB=0;
delay_us(777);
PORTB=0B00000110;
delay_us(2667);
PORTB=0B00001010;
delay_us(3889);
PORTB=0B00000110;
delay_us(2667);
PORTB=0;
delay_us(388);
}
lcd_cmd(lcd_clear);
Lcd_Out_Cp(" prog end");
lcd_out(2,1,"s1:menu s2:exit");
if(porta.f0==0)
{
goto menu;
}
if(porta.f1==0)
{
goto exit;
}
}
if(porta.f1==0)
{
goto exit;
}
exit:
Lcd_Out_Cp(" Exit");
lcd_out(2,1,"s1:yes s2:No");
delay_ms(3000);
if(porta.f0==0)
{
lcd_cmd(lcd_clear);
Lcd_Out_Cp(" prog end");
lcd_out(2,4," good bye");
}
if(porta.f1==0)
{
goto menu;
}
}


لما بعمل
Check code
بتظهر رسالة الخطأهذه
Not enough RAM lstr1_154
وانا مش عارف ايه معناها
ارجو الرد وشكرا

اعلانات

metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 15-06-2009, 06:04 PM المشاركة 2   
افتراضي


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


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

الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 436
نشاط [ أبو زكووور ]
قوة السمعة:82
قديم 15-06-2009, 08:23 PM المشاركة 3   
attension السلام عليكم


السلام عليكم جميعا

ارجو مساعدتى في تصحيح الخطأ الموجود في هذا الكود المكتوب بلغة الميكروسي


void main()

{
int (x) ;
lcd_init(&portc);
lcd_cmd(LCD_CURSOR_OFF);
lcd_out(1,1,"project of :");
delay_ms(5000);
lcd_cmd(lcd_clear);
lcd_out(1,4,"Multilevel ");
lcd_out(2,1," Pwm inverter ");
delay_ms(5000);
lcd_cmd(lcd_clear);
lcd_Out_Cp("press s1 for run");
lcd_out(2,1,"press s2 for EX");
menu:
lcd_cmd(lcd_clear);
lcd_cmd(LCD_CURSOR_OFF);
Lcd_Out_Cp("menu: ");
lcd_out(2,1,"s1:5l s2:EXIT");
TRISB=0;
trisa=0xff;
if(porta.f0==0)
{
lcd_cmd(lcd_clear);
lcd_Out_Cp("prog of 5l run");

for(x=0;x<1000;x++)
{
//this is the code of my project
PORTB=0;
Delay_us(337);
PORTB=0B00000101;
Delay_us(2717);
PORTB=0B00001001;
delay_us(3889);
PORTB=0B00000101;
delay_us(2667);
PORTB=0;
delay_us(777);
PORTB=0B00000110;
delay_us(2667);
PORTB=0B00001010;
delay_us(3889);
PORTB=0B00000110;
delay_us(2667);
PORTB=0;
delay_us(388);
}
lcd_cmd(lcd_clear);
Lcd_Out_Cp(" prog end");
lcd_out(2,1,"s1:menu s2:exit");
if(porta.f0==0)
{
goto menu;
}
if(porta.f1==0)
{
goto exit;
}
}
if(porta.f1==0)
{
goto exit;
}
exit:
Lcd_Out_Cp(" Exit");
lcd_out(2,1,"s1:yes s2:No");
delay_ms(3000);
if(porta.f0==0)
{
lcd_cmd(lcd_clear);
Lcd_Out_Cp(" prog end");
lcd_out(2,4," good bye");
}
if(porta.f1==0)
{
goto menu;
}
}


لما بعمل
Check code
بتظهر رسالة الخطأهذه
Not enough RAM lstr1_154
وانا مش عارف ايه معناها
ارجو الرد وشكرا
أخي جرجس
هذه الرسالة تعني أن الكود الذي كتبته لايمكن إستيعابه ضمن ذاكرة المتحكم (الفلاش ميموري)
أنت لم تخبرنا برقم المتحكم و نوعه
إذا كان PIC16F84
يجب عليك إستخدام متحكم ذاكرته أكبر مثل PIC16F628

أو إذا أمكن التقليل من قيم الأزمنة طبعا هذا الحل قد يؤثر على عمل الدارة


الصورة الرمزية ahmad72
ahmad72
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2004
المشاركات: 729
نشاط [ ahmad72 ]
قوة السمعة:109
قديم 15-06-2009, 10:22 PM المشاركة 4   
افتراضي


كما قال الاخوه البرنامج استهلك كل الرام الخاص بالمتحكم
حتى لو استخدمت متحكم 16f877ستظل المشكله
لان استعمالك لاوامر الشاشه بهذه الطريقه استهلك الرام
ممكن توضح انت عاوز تعمل ايه
علشان احد يساعدك فى اختصار البرنامج لتقليل استهلاكه للرام


metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 15-06-2009, 10:37 PM المشاركة 5   
افتراضي


لحل مشكلتك عليك أن تحول الdelay الى حلقة for مثلا لتقوم بdelay مدة 5 ثواني تكتب
for x = 0 to 5000
delay_ms(1)
next x
بعد أن يكون قد عرّفت x على أنه انتجر
جد من يحوّل هذه الحلقة للغة c
ففي برنامجك ديلي 5 ثواني وهذا كافي ليستهلك 5% من برنامجك وهكذا (ذاكرة برنامجك)


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 16-06-2009, 03:35 AM المشاركة 6   
افتراضي


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

حيدر علاج حسن

جرجس جرجس
:: مهندس ::
تاريخ التسجيل: Apr 2009
المشاركات: 17
نشاط [ جرجس جرجس ]
قوة السمعة:0
قديم 18-06-2009, 12:54 PM المشاركة 7   
افتراضي الهدف من الكود


السلام عليكم جميعا
اشكركم يا اخوانى علي هذا الاهتمام
انا عدلت الكود ودلوقتى لا تظهر اي رسائل error بس لما بعمل simulation على ال proteus الكود بيتنفذ من غير ما ادوس علي اي سويتش ون غير عدد ال for loop بيفضل شغال علي طول
انا بستخدم pic 18f452 الكود لمشروع inverter متوصل مع lcd screen
Port a input
port B output port C for lcd
S1 متوصل بالرجل a0
S2 متوصل بالرجل a1
لما يشتغل البرنامج تظهر رسائل الترحيب وبعدين عدين تظهر رسالة
menu:
s1:5l s2:Ex
و تظل علي الشاشة الي ان يتم الضغط علي احد المفتاحين اذا اخترنا s1 يتم تنفيذ البرنامج 1000 مرة حسب ال for loop ثم تظهر رسالة
Prog end
S1:menu s2:Ex
و تظل علي الشاشة الي ان يتم الضغط علي احد المفتاحين اذا اخترنا s1 يتم العودة مره اخري الي قائمه menu
واعادة الاختيار واذا تم الضغط علي s2 تظهر رسالة exit
S1:yes s2:no
و تظل علي الشاشة الي ان يتم الضغط علي احد المفتاحين اذا اخترنا s1 تظهر رسالة prog end
Good bye
اذا اخترنا s2 يتم العودة مره اخري الي قائمه menu
هذا ايها الاخوة ما اريد تنفيذه بهذا البرنامج ولكنه لايعمل بهذا الشكل واتمني ان تساعدوني لصحيح ما به من اخطاء
واشكركم جميعا

void main()
{
int (x) ;
lcd_init(&portc);
lcd_cmd(LCD_CURSOR_OFF);
lcd_out(1,1,"project of :");
delay_ms(2000);
lcd_cmd(lcd_clear);
lcd_out(1,4,"Multilevel ");
lcd_out(2,1," Pwm inverter ");
delay_ms(2000);
lcd_cmd(lcd_clear);
Lcd_Out_Cp("supervised by:");
lcd_out(2,1," Dr. Gamal Hashm");
delay_ms(3000);
lcd_cmd(lcd_clear);
lcd_Out_Cp("press s1 for run");
lcd_out(2,1,"press s2 for EX");
delay_ms(2000);
menu:
lcd_cmd(lcd_clear);
lcd_cmd(LCD_CURSOR_OFF);
Lcd_Out_Cp("menu: ");
lcd_out(2,1,"s1:5l s2:EXIT");

TRISB=0;
trisA=00001111;
if(portA.f0==0)
{
lcd_cmd(lcd_clear);
lcd_Out_Cp("prog of 5l run");
//code of project
for(x=0;x,1000;x++)
{
PORTB=0;
Delay_us(337);
PORTB=0B00000101;
Delay_us(2717);
PORTB=0B00001001;
delay_us(3889);
PORTB=0B00000101;
delay_us(2667);
PORTB=0;
delay_us(777);
PORTB=0B00000110;
delay_us(2667);
PORTB=0B00001010;
delay_us(3889);
PORTB=0B00000110;
delay_us(2667);
PORTB=0;
delay_us(388);
}
lcd_cmd(lcd_clear);
Lcd_Out_Cp(" prog end");
lcd_out(2,1,"s1:menu s2:exit");
if(porta.f0==0)
{goto menu;}
if(porta.f1==0)
{goto exit; }}
if(porta.f1==0)
{goto exit;}
exit:
Lcd_Out_Cp(" Exit");
lcd_out(2,1,"s1:yes s2:No");
if(porta.f0==0)
{
lcd_cmd(lcd_clear);
Lcd_Out_Cp(" prog end");
lcd_out(2,4," good bye");
}
if(porta.f1==0)
{goto menu;}}


جرجس جرجس
:: مهندس ::
تاريخ التسجيل: Apr 2009
المشاركات: 17
نشاط [ جرجس جرجس ]
قوة السمعة:0
قديم 21-06-2009, 05:34 PM المشاركة 8   
افتراضي


ارجو المساعده ايها الاخوه فالكود بسيط وانتم تستطيعون ذلك

إضافة رد

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

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

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


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

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