اطلاعیه

Collapse
No announcement yet.

راهنمایی در نوشتن برنامه إ¾میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راهنمایی در نوشتن برنامه إ¾میکرو

    سلام.

    میخواستم برای mega16 این برنامه رو تو کدویژن بنویسم. چیزی که به ذهنم رسید، نوشتم. کامپایل شد. ولی تو پروتئوس جواب نمیده. :sad: خروجی همچنان خاموشه و با زدن سوئیچ های ورودی هیچ اتفاقی نمیآ‌افته. :cry:

    -----> در اولین IF برنامه، دوتا = گذاشتم. درسته؟ آخه هر وقت یک = میزارم، ارور میده میگه: possibly incorrect assignment

    این الگوریتم:


    اینم برنامه:

    کد:
    #include<mega16.h>
    unsigned int x;
    unsigned int y;
    
    
    void main (void)
      { 
    
        DDRC = 0xFF;
        PORTC= 0x00;
        
        DDRA=0x00;
        PORTA=0x00;
     
        x=PORTA;
        PORTC=y;
        
        while(1)
        {
         if (x==0xF7) 
         {
         y=0xF8;
         }
         else if ((x=0xF8) || (x=0xF9) || (x=0xFA) ||(x=0xFB) ||(x=0xFC) ||(x=0xFD) || (x=0xFE))  y=0xFE;
         else if ((x=0x8F) || (x=0x9F) || (x=0xAF) ||(x=0xBF) ||(x=0xCF) ||(x=0xDF) || (x=0xEF))  y=0xFD;
         else
         {
         y=0xF8;
         }
        }
     }
    دلي دارم که از تنگي در او جز غم نمي گنجد........ غمي دارم ز دلتنگي که در عالم نميگنجد

    #2
    پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

    سلام دوست عزیز
    برای اینکه شرطها هم همیشه و مرتبا چک بشه
    x=PORTA;
    PORTC=y; l
    این دو دستور رو هم داخل( while(1 بنویس
    موفق باشی

    دیدگاه


      #3
      پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

      این یکی رو نوشتم. ولی فقط یکبار خروجی عوض میشه!؟ بعذ از run کردن، یکبار خروجیها میان و ثابت میمونن. بعدش هر چی کلیدا رو عوض میکنم اتفاقی نمی افته...؟!؟


      کد:
      #include <mega16.h>
      
      unsigned int x;
      unsigned int y;
      
       void main ()
       {
       PORTC=0x00;
       DDRC=0xFF;
       
       PORTA=0x00;
       DDRA=0x00;
      
       while (1)
       {
       
       x=PINA;
       PORTC=y; 
       
        if (x==0xF7)
        {
         y=0xF8; 
        }
        else
        if ((x==0x8F) || (x==0x9F) || (x==0xAF) || (x==0xBF) || (x==0xCF) || (x==0xDF) || (x==0xEF))
        {
         y=0xFD;
        }
        else
        if ((x==0xF8) || (x==0xF9) || (x==0xFA) || (x==0xFB) || (x==0xFC) || (x==0xFD) || (x==0xFE))
        {
         y=0xFE;
        }
        };
       }
      دلي دارم که از تنگي در او جز غم نمي گنجد........ غمي دارم ز دلتنگي که در عالم نميگنجد

      دیدگاه


        #4
        پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

        :NO: از دستورات زیر استفاده کن
        while(1)
        {
        if(......)
        else if(....)
        else if(...)
        .
        .
        .
        else()

        }
        چار فرانسه نباش

        دیدگاه


          #5
          پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

          نوشته اصلی توسط Ma3oud
          این یکی رو نوشتم. ولی فقط یکبار خروجی عوض میشه!؟ بعذ از run کردن، یکبار خروجیها میان و ثابت میمونن. بعدش هر چی کلیدا رو عوض میکنم اتفاقی نمی افته...؟!؟
          سلام
          فکر میکنم اشتباه میکنیا
          برنامت درسته و تو پروتوس هم درست جواب داد

          دیدگاه


            #6
            پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

            ali akbar abasian جان،
            منم از دستوری که شما نوشتی استفاده کردم، ولی... :sad:

            farzadjamali جان، مطمئنی؟؟
            دقیقاً برنامه دومی رو میگی؟ همینی که نوشتم؟؟
            من تو پروتئوس تو ورودی یک DIP سوییچ 8تایی و 8 تا led تو خروجی گذاشتم. با تغییر دادن سوییچ به مقدارهای تو فلوچارت (F8 , F9 , EF ,....) خروجی همونی می مونه که تو لحظه run کردن بوده. مثلاً اگر قبل از ران کردن، دیپ ها روی F7 باشند، لحظه Run شدن خروجی میشه F8. ولی اگر بعد از اون و حین شبیه سازی دیپ ها رو عوض کنم، هیچی! همون F8 می مونه!!

            اگر زحمتی نیست، میشه فایل پروتئوست را پ کنی ببینم؟ آخه! این فایلی که میگم:
            http://www.2shared.com/file/e436JwWO/solar.html
            دلي دارم که از تنگي در او جز غم نمي گنجد........ غمي دارم ز دلتنگي که در عالم نميگنجد

            دیدگاه


              #7
              پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

              اره مسعود جان
              خودت ببین
              1.rar

              موفق باشی

              دیدگاه


                #8
                پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

                لعنت به من پروتئوسم 7.2 وSP2 هست. نتونست بازش کنه.. :sad: حالا 3 شب از کجا پروتئوس جور کنم؟!؟

                اصلاًً اینی که من میگم اتفاق می افتاد؟ من میخوام اگر مثلاً ورودی 8F هست و خروجی شده FD, اگر ورودی رو عوض کردم شد F8 خروجی همون موقع بشه FD. یعنی دقیقاً عین فلوچارتی که گذاشتم. ولی فقط یکبار خروجی تغیرر میکنه و مقداری رو که موقع run شدن خونده نشون میده وبعد no action!!

                فکر کنم تو حلقه یه جایی ایراد داره. چون برنمیگرده دوباره ورودی رو بخونه.... نه؟؟
                دلي دارم که از تنگي در او جز غم نمي گنجد........ غمي دارم ز دلتنگي که در عالم نميگنجد

                دیدگاه


                  #9
                  پاسخ : راهنمایی در نوشتن برنامه إ¾میکرو

                  :NO:
                  این برنامه به نظر خیلی ساده میاد خوب مدارشو ببند حتما جواب می ده
                  چار فرانسه نباش

                  دیدگاه

                  لطفا صبر کنید...
                  X