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

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

mikro.man7
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2014
المشاركات: 109
نشاط [ mikro.man7 ]
قوة السمعة:0
قديم 21-01-2016, 03:24 PM المشاركة 1   
افتراضي دايرة كونتر من 0-99 بسيطة فيها مشكلة محتاج مساعدة Twitter FaceBook Google+



عاوز اعرف فين المشكلة في الكود دائما الخرج على البورت ب0
الكود
كود:
#ifndef F_CPU
#define F_CPU 16000000 //16 MEGA HZ
#endif

#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>

//int DISPLAY1 [10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67};	
void fun (unsigned int k);
unsigned char x , y ,speed;

int main(void)
{
	DDRC=0Xff;
	while (1){
		for (x = 0;x<=9;x++)
		{
			for (y = 0;y<=9;y++)
			{
			   for (speed=0;speed<=80;speed++)
			   {
				   PORTC |= (1<<PC4);
				   PORTC &=~ (1<<PC5);
				   //----------------
				   fun(x);
				   //--
				   _delay_ms(50);
				    PORTC |= (1<<PC5);
				    PORTC &=~ (1<<PC4);
				    //----------------
					fun(y);
				   _delay_ms(50);
			   }//end for speed
			}//end for y
			
		}//end for x
		
}//end loop
}//end main

void fun (unsigned int k)
{
	k= k & 0xF0 ; /*clear the 4 MSbs of foo*/
	PORTC = PORTC | k; /*write the 4 LSbs of portd*/
}//end function

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-01-2016, 04:52 PM المشاركة 2   
x4


بسم الله الرحمن الرحيم

اخي العزيز السلام عليكم و رحمة الله و بركاته

والله اعلى و اعلم
اعتقد ان الخطا فى السطر التالي :

كود:
k= k & 0xF0 ; /*clear the 4 MSbs of foo*/
و الصح هو

كود:
k= k & 0x0F ; /*clear the 4 MSbs of foo*/
و لو عندك اسئلة
فى حالة مثل هذه ممكن تشغل البرنامج run و تشاهد تغير المتغيرات و المسجلات داخل المترجم , ممكن تبحث على هذه الخاصية فى مترجمك ستسهل عليك تتبع الخطوات للوصول للخطا , ابحث عليها فى النت لاني لا اعرفها فى مترجمك .

تحت امرك ربنا يوفقك
و الله المستعان و الموفق
اللهم انصر الاسلام و اعز المسلمين



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

mikro.man7
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2014
المشاركات: 109
نشاط [ mikro.man7 ]
قوة السمعة:0
قديم 21-01-2016, 05:15 PM المشاركة 3   
افتراضي


بسم الله الرحمن الرحيم

اخي العزيز السلام عليكم و رحمة الله و بركاته

والله اعلى و اعلم
اعتقد ان الخطا فى السطر التالي :

كود:
k= k & 0xF0 ; /*clear the 4 MSbs of foo*/
و الصح هو

كود:
k= k & 0x0F ; /*clear the 4 MSbs of foo*/
و لو عندك اسئلة
فى حالة مثل هذه ممكن تشغل البرنامج run و تشاهد تغير المتغيرات و المسجلات داخل المترجم , ممكن تبحث على هذه الخاصية فى مترجمك ستسهل عليك تتبع الخطوات للوصول للخطا , ابحث عليها فى النت لاني لا اعرفها فى مترجمك .

تحت امرك ربنا يوفقك
و الله المستعان و الموفق
اللهم انصر الاسلام و اعز المسلمين


الكود ما اشتغلش لالاسف

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


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-01-2016, 08:16 PM المشاركة 4   
x4


بسم الله الرحمن الرحيم

اخي العزيز السلام عليكم و رحمة الله و بركاته

كود:
void fun (unsigned int k);
int main(void)
{               unsigned char x , y ,speed;
    DDRC=0Xff;
    while (1){
        for (x = 0;x<=9;x++)
        {
            for (y = 0;y<=9;y++)
            {
               for (speed=0;speed<=10;speed++)
               {   
                   fun(x);
                   PORTC |= (1<<4);
                   PORTC &=~ (1<<5);
                    delay_ms(50);
                   //----------------
                       fun(y);
                    PORTC |= (1<<5);
                    PORTC &=~ (1<<4);
                   delay_ms(50);
                   
               }//end for speed
            }//end for y

        }//end for x

}//end loop
}//end main

void fun (unsigned int k)
{
    //    k= k & 0x0F ; /*clear the 4 MSbs of foo*/  NOT IMPORTANT BECAUSE K<=9
    PORTC = 0XFF ;
    PORTC = PORTC & k; /*write the 4 LSbs of portd*/

}//end function

لله الفضل و المنة البرنامج الان يعمل , قارن لتعرفة اين الخدعة ؟ بين شطرتك يا بطل .....


لو حضرتك بتستخدم ميكرو سي ستجد قائمة RUN --> DEBUGGER
تحت امرك ربنا يوفقك

و الله المستعان و الموفق

اللهم اعز اهل طاعتك و اهدى العصاة و اقضى على الطغاة




mikro.man7
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2014
المشاركات: 109
نشاط [ mikro.man7 ]
قوة السمعة:0
قديم 22-01-2016, 04:59 AM المشاركة 5   
افتراضي


بسم الله الرحمن الرحيم

اخي العزيز السلام عليكم و رحمة الله و بركاته

كود:
void fun (unsigned int k);
int main(void)
{               unsigned char x , y ,speed;
    DDRC=0Xff;
    while (1){
        for (x = 0;x<=9;x++)
        {
            for (y = 0;y<=9;y++)
            {
               for (speed=0;speed<=10;speed++)
               {   
                   fun(x);
                   PORTC |= (1<<4);
                   PORTC &=~ (1<<5);
                    delay_ms(50);
                   //----------------
                       fun(y);
                    PORTC |= (1<<5);
                    PORTC &=~ (1<<4);
                   delay_ms(50);
                   
               }//end for speed
            }//end for y

        }//end for x

}//end loop
}//end main

void fun (unsigned int k)
{
    //    k= k & 0x0F ; /*clear the 4 MSbs of foo*/  NOT IMPORTANT BECAUSE K<=9
    PORTC = 0XFF ;
    PORTC = PORTC & k; /*write the 4 LSbs of portd*/

}//end function

لله الفضل و المنة البرنامج الان يعمل , قارن لتعرفة اين الخدعة ؟ بين شطرتك يا بطل .....


لو حضرتك بتستخدم ميكرو سي ستجد قائمة RUN --> DEBUGGER
تحت امرك ربنا يوفقك

و الله المستعان و الموفق

اللهم اعز اهل طاعتك و اهدى العصاة و اقضى على الطغاة



انا بشكرك على المجهود والمتابعة

لاكن لالاسف اخي الكود لا يعمل انا تقريبا بقالى يوم كامل بحاول فى 7 سيجمنت
وطرق تشغيلها ولم اصل غير لفكرة تشغيلها على بورت بشكل مباشر

انا بدءت اتعلم لغة c بعد ما نصحني اكتر من شخص انو اترك لغة البيزك وانتقل للسي
لاكن من الواضح انها ليست بسهولة البيزك
انا استخدم ATMEL STADIO _ لبرمجة ميكرو ATMEGA

مع اني اتعلمت الاساسيات وكانت سهلة لانو عندي خلفية من لغة اخري
لاكن مش عارف

بس تقريبا كدا ها ارجع تاني للغة البيزك والله المستعان


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 22-01-2016, 06:18 AM المشاركة 6   
x4


انا بشكرك على المجهود والمتابعة

لاكن لالاسف اخي الكود لا يعمل انا تقريبا بقالى يوم كامل بحاول فى 7 سيجمنت
وطرق تشغيلها ولم اصل غير لفكرة تشغيلها على بورت بشكل مباشر

انا بدءت اتعلم لغة c بعد ما نصحني اكتر من شخص انو اترك لغة البيزك وانتقل للسي
لاكن من الواضح انها ليست بسهولة البيزك
انا استخدم ATMEL STADIO _ لبرمجة ميكرو ATMEGA

مع اني اتعلمت الاساسيات وكانت سهلة لانو عندي خلفية من لغة اخري
لاكن مش عارف

بس تقريبا كدا ها ارجع تاني للغة البيزك والله المستعان
بسم الله الرحمن الرحيم

اخي العزيز السلام عليكم و رحمة الله و بركاته

هاهاها ... اخى مررت بنفس ظروفك و كدت ان افعل ما تريده لكن و الحمد لله احببت ان اتحداها لغة السي و يكفى اخبرك انى ما زلت و الحمد لله اتعلم فيها رغم انى امارسها بعد ما تركت البيزيك من فترة كبيرة , الا انني عندما اقرا فيها تانى اتذكر ما نسيته و وجدت انى اتعلم امور جديدة .
لذلك استعن بالله (بغض النظر عن الدين) و لا تياس و احب اعرفك انك لما تتعلم السي ان شاء الله تقدر تتعلم بعدها 3 لغات و تتقنهم بسهولة لغة V.C - JAVA - PYTHON . و الشركات الكبرى فى الميكرو تستخدم السي و الاسمبلى على حد علمى .

لعلمك البرنامج شغال معايا ممكن ترفع ملف بروتيوس يمكن فيه مشكلة .
و ان شاء الله ساقدم بعض النصائح فى البرمجة على المنتدى علشان نتعلم من بعض , تبقى تشاركنا فيها ... سلام يا بطل و اوعى ترجع عن خطوتك ... العباقرة يحبون الصعاب ...


و الله المستعان و الموفق

اللهم اعز اهل طاعتك و اهدى العصاة و اقضى على الطغاة





mikro.man7
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2014
المشاركات: 109
نشاط [ mikro.man7 ]
قوة السمعة:0
قديم 23-01-2016, 10:53 AM المشاركة 7   
افتراضي


بسم الله الرحمن الرحيم

اخي العزيز السلام عليكم و رحمة الله و بركاته

هاهاها ... اخى مررت بنفس ظروفك و كدت ان افعل ما تريده لكن و الحمد لله احببت ان اتحداها لغة السي و يكفى اخبرك انى ما زلت و الحمد لله اتعلم فيها رغم انى امارسها بعد ما تركت البيزيك من فترة كبيرة , الا انني عندما اقرا فيها تانى اتذكر ما نسيته و وجدت انى اتعلم امور جديدة .
لذلك استعن بالله (بغض النظر عن الدين) و لا تياس و احب اعرفك انك لما تتعلم السي ان شاء الله تقدر تتعلم بعدها 3 لغات و تتقنهم بسهولة لغة V.C - JAVA - PYTHON . و الشركات الكبرى فى الميكرو تستخدم السي و الاسمبلى على حد علمى .

لعلمك البرنامج شغال معايا ممكن ترفع ملف بروتيوس يمكن فيه مشكلة .
و ان شاء الله ساقدم بعض النصائح فى البرمجة على المنتدى علشان نتعلم من بعض , تبقى تشاركنا فيها ... سلام يا بطل و اوعى ترجع عن خطوتك ... العباقرة يحبون الصعاب ...


و الله المستعان و الموفق

اللهم اعز اهل طاعتك و اهدى العصاة و اقضى على الطغاة




تمام اخي انا ها اكمل فى لغة السي
بس لو سمحت انا محتاج منك مساعدة انا بدور على النت على
دروس او دورة على يوتيوب فيها شرح الاساسيات بس تكون كاملة بشكل مفصل
وكتب ومواقع يكون فيها الدروس مرتبة شرح امثلة
لقيت موقع بس المشكلة انو طلع مش atmel stadio
يعني الدوال الى فية مش موجودة فى البرنامج
https://newbiehack.com/Microcontroll...ngabutton.aspx


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 24-01-2016, 05:24 AM المشاركة 8   
افتراضي


أخى
لا أعلم ما نوع الشاشة التى تستخدمها ولا ما يختار الرقم الأيمن و الأيسر هل هو 1 أم صفر
لكن فى البرنامج أنت تضع 1 على كلا الرقمين PC4,PC5 ولا تعيد أيهما للصفر مرة أخرى وهذا ينتهى بأن يكون كلا الرقمين متاح أو غير متاح معا

إضافة رد

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

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

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


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

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