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

   

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 10-07-2014, 05:16 PM المشاركة 33   
angry



الكود ده ممكن يشتغل برده نفس النظريه تقريبا
كود:
counter = 0;
do{
 Binary[counter] = (data & (1<<counter))>>counter;
  }while(counter++ < 8);
السلام عليكم ورحمة الله وبركاتة
مهندس احمد الطباخ كل عام وانت بخير وصحة

==============

الكود الاول قام بالعمل بشكل ممتاز
لكن المشكلة التى لا افهمها لماذا يقوم بعكس الداتا
واضطر ان استخدم (~) لقلب المصفوفة بالكامل حتى اتخطى المشكلة ؟؟؟

اعلانات

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 10-07-2014, 05:36 PM المشاركة 34   
angry


السلام عليكم
قمت بكتابه في ملف text وقمت بحفظه في ميموري وقمت بقراءه من ميموري وجدت تتم العمليه بسهوله بشرط تحدد بالضبط اسم ملف الذي تريد ان تقراءه

ولكن لم أجد كيفيه قراءه ملف صوره يعني انا خزنت صوره في ميموري ولكن كيف تتم عمليه قراءها صراحه متوقف عند هذه النقطه

حملت برنامج mp3
http://www.mikroe.com/click/mp3/

ولكن وجدت أسلوب معين لقراءه ملف صوتي وكلنا نعلم ان ملف صوتي حجمه كبير

عموما انا راح اعرضلك الكود الي يتم من خلاله قراءه ملف صوتي ولكن لم أفهم فكره بعد

تعريف متغيرات ولكن مهم هو حجز من رام 448 بايت انا أعتقد لكون حجم ملف صوتي كبير فمن غير معقول قراءه ملف بكمله فأين يتم خزنه اذا لابد من تجزئه ملف وعرضه مقطع مقطع

يبدو ان هناك لبث حدث فى مشاركتى السابقة
============
ركز ايضا على اجهزة ال mp3 لا نحتاج بها الا الكتابة انما فقط قرائة بتتابع وليس اكثر
===========
انا هنا لم اقصد التركيز على طريقة عرض الmb3 ولكن فقط كنت اعطى مثال
انة كمثال فى حالة الام بى ثرى فقط نضع الكارت ميمورى فيتم القرائة مباشرة وبشكل منظم ومتتابع باستمرار .
ولكن موضوعنا هو عرض الصور ونريد ان نقرا الصور بشكل مستمر
=================
اما بخصوص استفسارك بالنسبة لكيفية قرائة الصور :
نحن لن نخزن صور فى الميمورى انما ملفات تكست
اولا يتم تحويل الصور الى ملفات تكست على شكل مصفوفة
ويتم القرائة منها بشكل متتابع يخضع لارقام الملفات
كمثال التتابع الاتى
filenem(0)
filenem(1)
filenem(2)

وهكذا
filenem(504)
==============
يتم فقط وضع متغير يمثال الرقم مابين الاقواس داخل لوب القرائة
فينتقل الكود من قرائة ملف الى اخر
==============
اما بخصوص تحويل الصور الى ملفات تكست فيوجد برامج كثيرة
حتى انة يوجد برامج تقوم بتحويل الفيديوهات الى ملفات من نوع bmp
واكيد لكل مشكلة حل فى وقتها ان شاء الله .
===============
مانبحث عنة الان كود ابسط مايكون للقرائة من ملفات تكست بتتابع


متابع

وكل عام وانتم بخير

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 10-07-2014, 06:04 PM المشاركة 35   
افتراضي


يبدو ان هناك لبث حدث فى مشاركتى السابقة

انا هنا لم اقصد التركيز على طريقة عرض الmb3 ولكن فقط كنت اعطى مثال
انة كمثال فى حالة الام بى ثرى فقط نضع الكارت ميمورى فيتم القرائة مباشرة وبشكل منظم ومتتابع باستمرار .
ولكن موضوعنا هو عرض الصور ونريد ان نقرا الصور بشكل مستمر
=================
اما بخصوص استفسارك بالنسبة لكيفية قرائة الصور :
نحن لن نخزن صور فى الميمورى انما ملفات تكست
اولا يتم تحويل الصور الى ملفات تكست على شكل مصفوفة
ويتم القرائة منها بشكل متتابع يخضع لارقام الملفات
كمثال التتابع الاتى
filenem(0)
filenem(1)
filenem(2)

وهكذا
filenem(504)
==============
يتم فقط وضع متغير يمثال الرقم مابين الاقواس داخل لوب القرائة
فينتقل الكود من قرائة ملف الى اخر
==============
اما بخصوص تحويل الصور الى ملفات تكست فيوجد برامج كثيرة
حتى انة يوجد برامج تقوم بتحويل الفيديوهات الى ملفات من نوع bmp
واكيد لكل مشكلة حل فى وقتها ان شاء الله .
===============
مانبحث عنة الان كود ابسط مايكون للقرائة من ملفات تكست بتتابع


متابع

وكل عام وانتم بخير
السلام عليكم
عمليه قراءه ملف بشكل text سهله جدا وقد قمت بتجربه حيث خزنت ملف تكست وقمت بكتابه رساله معينه ثم أحفظتها في ميموري وقرأئها البرنامج بشكل صحيح

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

فهل لديك برنامج يحول الصور الى text


بخصوص mp3 كان قصدي هو كيف تتم عمليه قراءه ملف صوتي فهو يقرأها بشكل تتابعي فيقوم بقراءه مقطع معين من ملف صوتي وبعدها يقوم بعرضه ثم يقرأ مقطع الثاني فيقوم بعرضه الى ان يكتمل قراءه ملف وبتأكيد هذه فكره هي الي سوف تستخدم في قراءه ملف صوره او ملفات مختلفه بشكل عام
وكل عام وانتم بخير


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 10-07-2014, 06:23 PM المشاركة 36   
افتراضي


السلام عليكم
عمليه قراءه ملف بشكل text سهله جدا وقد قمت بتجربه حيث خزنت ملف تكست وقمت بكتابه رساله معينه ثم أحفظتها في ميموري وقرأئها البرنامج بشكل صحيح

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

فهل لديك برنامج يحول الصور الى text


بخصوص mp3 كان قصدي هو كيف تتم عمليه قراءه ملف صوتي فهو يقرأها بشكل تتابعي فيقوم بقراءه مقطع معين من ملف صوتي وبعدها يقوم بعرضه ثم يقرأ مقطع الثاني فيقوم بعرضه الى ان يكتمل قراءه ملف وبتأكيد هذه فكره هي الي سوف تستخدم في قراءه ملف صوره او ملفات مختلفه بشكل عام
وكل عام وانتم بخير
وعليكم السلام ورحمة الله وبركاتة
الله ينور عليك ياهندسة
بخصوص تحويل الصورة الى تكست فهى منتهى السهولة
اولا اقوم بعمل اى صورة اريدها على الفوتوشوب
ويفضل بدون الوان فقط ابيض واسود .
وبعدها اقوم بحفظها بامتداد bmp وبعدها احولها الى مصفوفة عن طريق البرنامج التابع للميكروسى برنامج ال GLCD
واقوم بنسخها الى ملف تكست .
========================
وانا قمت بتجارب من قبل ببرنامج فجول بيسك للقرائة من ملفات تكست وايضا الكتابة عليها ولكن هذا ليس موضوعنا الان .
=======================
واسعى فى البحث غن برامج تقوم بتحويل الفيديو الى ملفات بنظام Decimal مباشرة وحتى الان وجدت فقط برامج تحويل فيديو كامل الى ملفات bmp
======================
لا تشغل بالك بهذا الان وسوف نصل لحل كل مشكلة فى وقتها
مانريدة الان اقصر كود للقرائة من تكست داخل الميمورى
ويكون المصفوفة كمثال عددها 504
على ان يكون اسم الملف مكون من اسم + رقم
لكى يتم ترتيب القرائة حسب رقم الملف
مثل ماذكرت فى المشاركة السابقة


التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 10-07-2014 الساعة 06:30 PM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 10-07-2014, 09:21 PM المشاركة 37   
افتراضي


وعليكم السلام ورحمة الله وبركاتة
الله ينور عليك ياهندسة
بخصوص تحويل الصورة الى تكست فهى منتهى السهولة
اولا اقوم بعمل اى صورة اريدها على الفوتوشوب
ويفضل بدون الوان فقط ابيض واسود .
وبعدها اقوم بحفظها بامتداد bmp وبعدها احولها الى مصفوفة عن طريق البرنامج التابع للميكروسى برنامج ال GLCD
واقوم بنسخها الى ملف تكست .
========================
وانا قمت بتجارب من قبل ببرنامج فجول بيسك للقرائة من ملفات تكست وايضا الكتابة عليها ولكن هذا ليس موضوعنا الان .
=======================
واسعى فى البحث غن برامج تقوم بتحويل الفيديو الى ملفات بنظام Decimal مباشرة وحتى الان وجدت فقط برامج تحويل فيديو كامل الى ملفات bmp
======================
لا تشغل بالك بهذا الان وسوف نصل لحل كل مشكلة فى وقتها
مانريدة الان اقصر كود للقرائة من تكست داخل الميمورى
ويكون المصفوفة كمثال عددها 504
على ان يكون اسم الملف مكون من اسم + رقم
لكى يتم ترتيب القرائة حسب رقم الملف
مثل ماذكرت فى المشاركة السابقة
السلام عليكم
تفضل اخي هذا برنامج لقراءه ملف
http://up.top4top.net/downloadf-top4...51561-rar.html
حيث يقرأ حرف حرف ويرسله عبر uart
تحياتي


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 20-07-2014, 03:43 AM المشاركة 38   
افتراضي


السلام عليكم
تفضل اخي هذا برنامج لقراءه ملف
http://up.top4top.net/downloadf-top4...51561-rar.html
حيث يقرأ حرف حرف ويرسله عبر uart
تحياتي
السلام عليكم ورحمة الله وبركاتة
اولا اعتزر عن التاخير فقد كنت مصابا بالبرد الشديد (نزلة برد)لا اراكم الله سوء
ونحمد الله على كل شىء .
=====================
طبعا استفدت كثيرا من شروحاتك السابقة
والان بحمد الله استطيع التعامل مع الميمورى كارت
ولكن لاحظت ان القرائة تتم بايت بايت او حرف حرف ascii
بمعنى لو كتبنا 25 يثم قرائتة 2 ثم 5 ولا يقراء 25 كبايت واحد
للتوضيح اكثر
لو مسجل فى الملف 0xFF فالبرنامج يقرئها هكذا
0
ثم x
ثم F
ثم F
واعتقد ان افضل حل هو الحفظ بنظام ascii فقط
=============
مااسعى الية حاليا هو قرائة ملفات الفيديو
واى جديد سوف يتم وضعة هنا باذن الله

وكل عام وانتم بخير
ورمضــــــــــــــــــــــــــــــــــان كريـــــــــــــــــــــــــــــــــم


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 20-07-2014, 07:16 AM المشاركة 39   
افتراضي


السلام عليكم ورحمة الله وبركاتة
اولا اعتزر عن التاخير فقد كنت مصابا بالبرد الشديد (نزلة برد)لا اراكم الله سوء
ونحمد الله على كل شىء .
=====================
طبعا استفدت كثيرا من شروحاتك السابقة
والان بحمد الله استطيع التعامل مع الميمورى كارت
ولكن لاحظت ان القرائة تتم بايت بايت او حرف حرف ascii
بمعنى لو كتبنا 25 يثم قرائتة 2 ثم 5 ولا يقراء 25 كبايت واحد
للتوضيح اكثر
لو مسجل فى الملف 0xFF فالبرنامج يقرئها هكذا
0
ثم x
ثم F
ثم F
واعتقد ان افضل حل هو الحفظ بنظام ascii فقط
=============
مااسعى الية حاليا هو قرائة ملفات الفيديو
واى جديد سوف يتم وضعة هنا باذن الله

وكل عام وانتم بخير
ورمضــــــــــــــــــــــــــــــــــان كريـــــــــــــــــــــــــــــــــم
السلام عليكم
حمدلله على سلامه وان شالله ماشوف شر
أخي الكريم انا أيضا أبحث عن كيفيه قراءه ملف صوتي او فيديو
ولكني وجدته الكودالخاص بــ MP3 هو يبين كيف يتم قراءه
هو يحث يقوم بتقسيمه الى 448 بايت ولكن لاعلم لي بهذا الرقم هل هو block كامل ام لا
كود:
 if (Mmc_Fat_Init() == 0) {
    if (Mmc_Fat_Assign("sound.mp3", 0) ) {
      Lcd_Cmd(_LCD_CLEAR);                // Clear display
      Lcd_Out(1,2,"File Assigned");
      Delay_ms(1500);

      Mmc_Fat_Reset(&file_size);          // Call Reset before file reading,
                                          // procedure returns size of the file

      Lcd_Cmd(_LCD_CLEAR);                // Clear display
      Lcd_Out(1,1,"Playing audio :)");

      // send file blocks to MP3 SDI
      while (file_size > BUFFER_SIZE)
      {
       // Set the SPI faster when reading data from mikro SD memory
       SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
       for (i=0; i<BUFFER_SIZE; i++)
                                   {
                                     Mmc_Fat_Read(mp3_buffer + i);
                                   }
        file_size -= BUFFER_SIZE;
      }

      // send the rest of the file to MP3 SDI
      // Set the SPI faster when reading data from mikro SD memory
      SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
      for (i=0; i<file_size; i++)
                                 {
                                  Mmc_Fat_Read(mp3_buffer + i);
                                 }

      // Set the SPI slower when sending data to mp3 codec
      SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV16, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
      for (i=0; i<file_size; i++) 
                               {
                                MP3_SDI_Write(mp3_buffer[i]);
                               }
واذا لقينا كود MP3 يعني نجعله عام يصبح هكذا
كود:
if (Mmc_Fat_Init() == 0) {
    if (Mmc_Fat_Assign("sound.mp3", 0) ) {
      Mmc_Fat_Reset(&file_size);          // Call Reset before file reading,
      // send file blocks to MP3 SDI
      while (file_size > BUFFER_SIZE)
      {
       // Set the SPI faster when reading data from mikro SD memory
       SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
       for (i=0; i<BUFFER_SIZE; i++)
                                   {
                                     Mmc_Fat_Read(mp3_buffer + i);
                                   }
        file_size -= BUFFER_SIZE;
      }

      // send the rest of the file to MP3 SDI
      // Set the SPI faster when reading data from mikro SD memory
      SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
      for (i=0; i<file_size; i++)
                                 {
                                  Mmc_Fat_Read(mp3_buffer + i);
                                 }
يعني بأختصار أخي انك راح تؤشر على ملف عن طريق هذا الامر
كود:
Mmc_Fat_Assign("sound.mp3", 0)
بعد ذلك يتم أحتساب حجم ملف بالبايت
كود:
 Mmc_Fat_Reset(&file_size);
وبعدها لايمكننا عمل مصفوفه بقدر حجم ملف لانه كما تعرف لاتسمح حجم ميموري بذلك وعليه قسمت الى 448 بايت
حيث ذكرو بالكود في بدايه البرنامج
كود:
const BUFFER_SIZE = 448;
char mp3_buffer[BUFFER_SIZE];
وعليه هنا يقول اذا كان حجم ملف الذي تمت قراءته أكبر من 448 أذن أخذ اول 448 ونفذ كود التالي
كود:
while (file_size > BUFFER_SIZE)
      {
       // Set the SPI faster when reading data from mikro SD memory
       SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
       for (i=0; i<BUFFER_SIZE; i++)
                                   {
                                     Mmc_Fat_Read(mp3_buffer + i);
                                   }
        file_size -= BUFFER_SIZE;
      }
حيث يتم قراءه ملف وخزنها في مصفوفه mp3_buffer وانت في هذه حاله عندما تقرأها عليك بارسال هذه البيانات الى led_matrix مثلا او اي خرج اخر
بعد ذلك راح يطرح حجم ملف من 448 (BUFFER_SIZE=448) ويشوف هل لايزال حجم ملف اكبر من 448 اذا كان نعم أعد عمليه بقراءه 448 بايت الثانيه

اما اذا كان لا مثلا بقت 300 بايت هذه لابد من قراءتها اذن الكود التالي سيتكفل بقراءه الباقي
كود:
SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
      for (i=0; i<file_size; i++)
                                 {
                                  Mmc_Fat_Read(mp3_buffer + i);
                                 }
ونفس الشيئ كلما تنتهي من قراءه ترسل البيانات الى خرج

أذن أخي هذا افضل الكود رأيته انا ولكن انا أيضا لازالت هذه نقطه غير واضحه مثلا لماذا أختار 448 بايت وهل أستطيع أختيار اكبر من ذلك او أقل من ذلك

أساسا كنت أبحث في اانترنيت عن عمليه قراءه ملف فيديو او صوت هو 100% يتم تجزئه ملف كما أشرت اليك ولكن كيف يتحول مقطع الصوتي الى داتا
على فكره الامر
كود:
Mmc_Fat_Reset(&file_size);
يرجع حجم ملف بالبايت كما أشرت لك ويخزنها في file_size علما ان file_size هو من نوع
كود:
unsigned long file_size;
اي أن أقصى حجم ملف ممكن قراءته هو 4294967295 بايت هو كبير بما يكفي

=============================================
طبعا أخي يوجد كود هو لمعرفه هل ميموري تمت أدخالها ام لا
طبعا هذا الكود خاص بـــMP3
كود:
Mmc_Card_Detect_Direction = 1;          // Set card detection pin to be input

  Lcd_Cmd(_LCD_CLEAR);                    // Prepare and output static text on LCD
  Lcd_Out(1,2,"Insert SD card");
  Delay_ms(1500);

  while(Mmc_Card_Detect);                  // Loop until card is detected

  Lcd_Cmd(_LCD_CLEAR);                    // Clear display
  Lcd_Out(1,1,"SD Card inserted");        // SD Card present report
  Delay_ms(1500);


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 20-07-2014, 09:09 AM المشاركة 40   
angry


اتمنى يفيد هذا الرابط
http://www.mikroe.com/downloads/get/..._pic_03_09.pdf
هو خاص بالام بى ثرى
واعتقد ان الرقم المذكور هو اختيارى وليس اجبارى
لانك سوف تجد ان الرقم فى هذا الكود هو فقط 32
============
المشكلة ليست فى القرائة
لان بجميع الاحوال بيتم القرائة ولكن المسكلة هى معرفة الاكواد داخل الملفات
كمثال :
قم بوضع الماوس على اى ملف فيديو واضغط كليك يمين
واختار اوبن ويز واختار نوت باد سوف يفتح معك على شكل تكست
هنا تجد الملف عبارة عن نص بحروف اسكى
وهكذا البك يقوم بفتحها وقرائتها وايضا يقوم بعرضها على شاشة 3310
ولكن العرض بيكون عشوائى لاننا لا نعرف بالتحديد بداية الاحرف وترتيبها
اما بالنسبة للملفات كاصوات فان البك يتعامل معها مباشرة
باستخدام اداة الصوت لا اعرف اسمها داخل برتوس ولم اتعامل معها من قبل .
=============
عموما مازال البحث مستمر
وارجو ان يكون الرابط مفيد



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