|
السلام عليكم ورحمه الله ..
عمل ممتاز أخي الكريم وجاري دراسه الكود بالتوفيق ..
عندي لك اقتراح أو خلينا نقول تطوير للمشروع هل يمكنك عمل برنامج وسيط علي ذاكرة خارجيه يمكن من خلالها وضع النص المراد عرضه علي كارت ميمورى أو فلاشه .. وهنا لكي يتم العرض من كارت الميموري أو الفلاشه .. لأن الشاشه كده هتكون مرتبطه بالكمبيوتر بستمرار ...
بالمناسبه لقد تم مشاركه رابط ملف تفعيل برنامج ميكروسي برو .. واسف لم انتبه للمشاركه الملف ..
|
اخي اريد ان تقرأ ما سأكتبه جيداً كي تحصل على مرادك والذي هو موجود ضمن المشروع ولكنك لم تنتبه له :
بعد الوصول للدالة الرئيسية .
وتعريف المداخل و المخارج و البروتوكول i2c ستجد اني كتبت:
كود:
addres=0;
UART1_Write('r');
UART1_Write(0x0d);
UART1_Write_Text("the screen is ready ");
UART1_Write(0x0d);
delay_ms(100);
//get buffer size
UART1_Write_Text( "input how many units : ");
UART1_Write(0x0d);
while(UART1_Data_Ready()==0){;}UART1_Write(0x0d);
bs=UART1_Read();
bs=bs*8+16;
//get scrrolling speed
UART1_Write_Text("input speed : ");
UART1_Write(0x0d);
delay_ms(100);
while(UART1_Data_Ready()==0){;} UART1_Write(0x0d);
speed=UART1_Read();
speed=speed-47;
UART1_Write_Text("input words: ");
UART1_Write(0x0d);
//receive words & store it in the internal eeprom
if(porta.f4==0){goto len;};
for(;;){
led1=0;
while(UART1_Data_Ready()==0){;}
led1=1;delay_ms(100);
fre= UART1_Read();
if(fre==0x0d){goto len;}
EEPROM_Write(addres,fre);
addres++;
eow=addres;
EEPROM_Write(127,1);
}
عندها سوف يرسل المتحكم رسالة وبعدها سوف ينتظر حتى يقوم المستخدم بارسال المطلوب
وهذا مكرر عدة مرات.
الان نأتي الى مطلبك
ملاحظة: ان كنت تقصد انك تريد ان تقوم بادخال الكلمات مرة واحدة فستلاحظ اني كتبت
if(porta.f4==0){goto len;};
وهذا الامر عندما المستخدم يريد ان يدخل الكلمات يضغط على الزر الموصل ب a4 ومن ثم يقوم باعادي التشغيل و لن يتحقق الشرط المكتوب لأن ضغطة الزر جعلت ال a4 ب 1 ولن يقوم بالقفز للبرنامج الرئيسي
بل سوف يقوم بما يلي :
ينتظر حتى يقوم المستخدم بارسال حرف ما ومن ثم يقوم بتخزينه باليبرومة الداخلية (لا الخارجية انتبه جيداً) في عناوين متتالية وفي كل عملية تخزين يقوم ليد خارجي ليس من ضمن الماتركس بالوميض
وبعد ان ينتهي المستخدم من اضافة الكلمات يضغط enter كي ينتقل المتحكم للبرنامج الأساسي
ويضغض السويتش كي تعود قيمة الa4 الى 0 ومن ثم لن يقوم الكود عند تشغيله مرة ثانية بالمرور على هذا الجزء مجدداً ..... افهمت النقطة اخي ؟؟ ارجو ذلك



.....
............................................
كود:
//receive words & store it in the internal eeprom
if(porta.f4==0){goto len;};
for(;;){
led1=0;
while(UART1_Data_Ready()==0){;}
led1=1;delay_ms(100);
fre= UART1_Read();
if(fre==0x0d){goto len;}
EEPROM_Write(addres,fre);
addres++;
eow=addres;
EEPROM_Write(127,1);
}
len:
delay_ms(100);
led2=1;led1=0;
addres=0;
//-------------------------
تحياتي للجميع.

