اطلاعیه

Collapse
No announcement yet.

تبدیل کد Codevision به Bascom

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

    تبدیل کد Codevision به Bascom

    سلام علیکم....
    خوبید خوشید سلامتید؟
    خدا رو شکر.
    آقا خدمت شما بگم که من دیدم همه اومدن دارن با LCD نوکیای چینی کار میکنن گفتم خز شد بریم سر یه چیز بزرگتر
    این شد که کار با TCB8000 رو شروع کردم.
    کلا ال سی دیه باحالیه.... البته یکمم مزخرفه!!!!
    خود ال سی دی 20 تومنه درایورش 140 تومن جدا از هم هم نمیفروشن!!!!
    اندازش هم بد نیست 5/7 اینچه...
    خلاصه این که ما با کدویژن راش انداختیم و بجز 2 تا تابع میدونم بقیه ی جاها چیکار میکنه...
    حالا من کد رو تبدیل کردم به بسکام چون به اندازه ی بسکام کدویژن بلد نیستم.
    ولی کد بسکام فقط یه لحظه ال سی دی رو روشن میکنه...
    احتمال خیلی زیاد میدم که مشکل از تبدیل تابع Writepkg باشه....
    به نظرتون مشکل از کجاست؟
    ایتم برنامه ها:
    بسکام:
    http://up.tradownload.com/images/swp...xkn6kavwu3.rar
    کدویژن:
    http://up.tradownload.com/images/buk...o8smyt2a0q.rar

    ویرایش

    فایل بسکام به دلیل خرابی لینک در این پست ضمیمه شد(1392/05/15)
    فایل های پیوست شده
    الهم عجل لولیک الفرج

    فقط 313 نفر...

    #2
    پاسخ : تبدیل کد Codevision به Bascom

    اساتید کجان؟
    الهم عجل لولیک الفرج

    فقط 313 نفر...

    دیدگاه


      #3
      پاسخ : تبدیل کد Codevision به Bascom

      کم کم دارم نا امید میشم
      یعنی بعد از 7 سال بزرگترین مجموعه ی الکترونیکی کشور نمیتونه مشکل یه بچه دبیرستانی رو حل کنه؟


      الهم عجل لولیک الفرج

      فقط 313 نفر...

      دیدگاه


        #4
        پاسخ : تبدیل کد Codevision به Bascom

        یعنی بعد از 7 سال بزرگترین مجموعه ی الکترونیکی کشور نمیتونه مشکل یه بچه دبیرستانی رو حل کنه؟
        پای خیلی تعبیرات رو میشه وسط آورد که فقط به اساتید این سایت هم بر نمیخوره. بلکه متاسفانه ممکنه به خودتون هم برگرده. مضاف بر اینکه تا جایی که دیدم اینجا بیشتر دوستان عادت دارن (و چه عادت خوبی هم هست) که راهنمایی کنن مشکل کسی حل بشه یا کمکی کنن که بلکه خودشون هم چیزی یاد بگیرن یا برنامه ای بنویسن محض دست گرمی خودشون. اما فکر نمیکنم این مشکل شما؛ شامل یکی از اینا بشه.

        گفتم خز شد بریم سر یه چیز بزرگتر
        کارتون احتمالا عرف که نیست که کسی قبلا کار کرده باشه یا خبری داشته باشه.

        کدش هم که فکر نمیکنم کم حجم باشه.

        بحث هم مقایسه دو تا کد هست توی دو تا زبون که خیلی ها هستن با بیسیک کار میکنن و با C آشنایی دارن یا با C کار میکنن و با بیسیک آشنایی دارن. بعدش هم که فکر نکنم دیگه حال اینجور کارا باشه.

        یه سرچی بزن ببین میتونی کد "کد ویژن" رو توی بسکام استفاده کنی؟ هم کار خودت راه میفته هم کار کلیای دیگه رو راه انداختی.
        فکر کنم اینطوری زودتر دماغت چاق شه.

        (اینو میگن تکنیک مدیریت ایرانی! وقتی نمیتونی مسئله رو حل کنی باید صورت مسئله رو پاک کنی یا عوض کنی!!)
        :mrgreen:

        دیدگاه


          #5
          پاسخ : تبدیل کد Codevision به Bascom

          سلام رضا جان بازم معرفت تو رو عشقه...
          از خیلی ها انتظار داشتم ولی....
          الهم عجل لولیک الفرج

          فقط 313 نفر...

          دیدگاه


            #6
            پاسخ : تبدیل کد Codevision به Bascom

            سلام دوستان من یکسری جاهای برنامه ی بسکام رو تغییرات دادم ولی بازم متاسفانه کار نکرد.
            دیگه کرم شماست...
            یا علی.
            الهم عجل لولیک الفرج

            فقط 313 نفر...

            دیدگاه


              #7
              پاسخ : تبدیل کد Codevision به Bascom

              در دوپروژه شما مطابق کدهای قرار داده شده، سخت افزار از نظر نوع پورت ها و شماره میکروکنترلر متفاوت است که شایسته است یک نقشه سخت افزاری و Datasheet مربوط به LCD مذکور را در تاپیک قرار دهید تا نمونه کدها برای بقیه دوستان هم قابل استفاده باشد.
              از نظر کد نویسی با یک نگاه اجمالی به برنامه می توان به این نتیجه رسید که روتین مربوط به Writepkg در کد بسکام با آنچه در کد C نوشته شده عملکرد یکسانی ندارند. به همین منظور کد زیر را امتحان کنید و نتیجه را اطلاع دهید:

              Sub Writepkg()
              Local C As Byte
              For C = 1 to Pkglen
              Call Sdcmd(buffer(c))
              Next C
              Call Cmdend()
              Waitms 2
              End Sub
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #8
                پاسخ : تبدیل کد Codevision به Bascom

                راستش در برنامه ی کد ویژن بافر از خانه ی 0 شروع می شود و در Buffer(0) طول بافر ریخته میشه یعنی اگه قراره 5 تا از بافر پر بشه مقدار خانه ی صفر بافر برابر 5 میشه که
                به این معناست یعنی تا خانه ی شماره ی 5 بافر را بفرست.
                چون در بسکام متغییر های Arry از 1 شروع میشوند من یک متغییر بایت تعریف کردم که مقدار بافر در آن ریخته شود.
                با توجه به فهمی که من از کد C داشتم
                void WritePKG(uchar *pkg)
                {
                uchar i;
                for(i=*pkg;i;i--)
                SdCmd(*(++pkg));
                CmdEnd();
                delay_ms(2);
                }
                حلقه داره معکوس میشموره پس در آخرین دفعه خانه ی صفر از متغییر بافر رو میفرسته که برابر تعداد بایت هایی است که تا کنون فرستاده شده.
                درسته؟
                راستی من پایه ها رو هم یکی کردم ولی بازم؟
                الهم عجل لولیک الفرج

                فقط 313 نفر...

                دیدگاه


                  #9
                  پاسخ : تبدیل کد Codevision به Bascom

                  برداشت شما از عملکرد کد C صحیح نیست. آیا نمونه کد قرار داده شده را امتحان کردید؟
                  اوژن: به معنای افکننده و شکست دهنده است
                  دانایی، توانایی است-Knowledge is POWER
                  برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                  وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                  قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                  اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                  ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                  دیدگاه


                    #10
                    پاسخ : تبدیل کد Codevision به Bascom

                    جناب کی نژاد شما معرکه اید.
                    کد جواب داد...
                    :mrgreen: :mrgreen: :mrgreen:
                    فقط دوتا زحمت دیگه هم داشتم:
                    اگه امکانش هست عمکرد کد زیر رو توضیح بدید:

                    NoOfChar=strlen(pstr); // send the string
                    SdCmd(0x17);
                    SdCmd(NoOfChar);
                    while(*pstr>0)
                    {
                    SdCmd(*pstr++);
                    }
                    CmdEnd();
                    یه مشکل دیگه هم توی تابع پخش تصویر وجود داره...
                    void ShowBMP160(ulong X,ulong Y)
                    {
                    uchar i,j,k,Buffer[5];
                    uint p;
                    ulong addr;
                    // Display RAM pointer
                    addr=Y*5; //
                    addr=addr<<7; //
                    addr=addr+95; // same as addr= X*2 + Y*320*2
                    p=0; // Data ROM pointer
                    for(i=0;i<120;i++)
                    {
                    Buffer[0]=4;
                    Buffer[1]=0x81;
                    Buffer[2]=addr;
                    Buffer[3]=addr>>8;
                    Buffer[4]=addr>>16;
                    WritePKG(Buffer);

                    for(j=0;j<4;j++) // sprit one line data to 8 packet
                    {
                    SdCmd(0x84); // send data packet
                    SdCmd(40); // no of byte in one packet
                    for(k=0;k<16;k++) // no of pixels in one packet
                    {
                    SdCmd(pic01[p+1]); // low byte
                    SdCmd(pic01[p]); // high byte
                    p+=2;
                    }
                    CmdEnd();
                    }
                    //addr+=640; // next line
                    addr+=256;
                    }
                    }
                    نمیفهمم این X و Y برای چی هست؟
                    الهم عجل لولیک الفرج

                    فقط 313 نفر...

                    دیدگاه


                      #11
                      پاسخ : تبدیل کد Codevision به Bascom

                      نوشته اصلی توسط امیر حسام الفتی
                      اگه امکانش هست عمکرد کد زیر رو توضیح بدید
                      در کد مذکور که بخشی از تابع PrintASCII است، ابتدا طول رشته حساب می شود و سپس عدد 0x17 و بعد طول رشته و کلیه اعضای رشته و در نهایت CmdEnd فرستاده می شود. کد زیر را برای جایگزینی کل تابع امتحان کنید که در بخش محاسبه کد ASCIIi ممکن است نیاز به تغییراتی داشته باشد:

                      کد:
                      Sub Text(x As Word , Y As Word , Forcolor As Word , Backcolor As Word , Pstr As String)    '/ / Max 64 Byte In The String
                      
                      Local Noofchar As Byte
                      Local I As Byte , J As Byte
                      Local S As String * 1
                      
                      Call Setfontfgcolor(forcolor)
                      Call Setfontbgcolor(backcolor)
                      
                       Pkglen = 2                         '// use internal 8x8 font
                       Buffer(1) = &H10
                       Buffer(2) = &H00
                       Call Writepkg()
                      
                       Pkglen = 5                         '// set the location
                       Buffer(1) = &H12
                       Buffer(2) = X
                       Buffer(3) = Inp(xaddh)
                       Buffer(4) = Y
                       Buffer(5) = Inp(yaddh)
                       Call Writepkg()
                      
                       Noofchar = Len(pstr)
                       Call Sdcmd(&H17)
                       Call Sdcmd(noofchar)
                       For I = 1 To Noofchar
                       S = Mid(pstr , i , 1)
                       J = Asc(s)
                       Call Sdcmd(j)
                       Next I
                       Call Cmdend()
                      End Sub


                      در تابع دوم از روی X و Y یک آدرس محاسبه و برای LCD ارسال شده که احتمالا محل نمایش شکل یا چیزی شبیه به آن است و باید توضیح آن را در اطلاعات مربوط به LCD ببینید:
                      address=2*X + 640*Y
                      البته تابع اصلی با آنچه در پست قبل قرار دادید تفاوت هایی دارد (مانند جمع با 95).
                      اوژن: به معنای افکننده و شکست دهنده است
                      دانایی، توانایی است-Knowledge is POWER
                      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                      دیدگاه


                        #12
                        پاسخ : تبدیل کد Codevision به Bascom

                        اینم جواب داد...
                        فقط مونده پخش عکس...
                        الهم عجل لولیک الفرج

                        فقط 313 نفر...

                        دیدگاه


                          #13
                          پاسخ : تبدیل کد Codevision به Bascom

                          نوشته اصلی توسط امیر حسام الفتی
                          اینم جواب داد...
                          فقط مونده پخش عکس...
                          آیا منظور این است که برای تبدیل تابع از کدویژن به بسکام مشکل دارید، و یا آن را نوشته اید و درست جواب نمی دهد؟ در صورت دوم کد نوشته شده را برای بررسی قرار دهید.
                          اوژن: به معنای افکننده و شکست دهنده است
                          دانایی، توانایی است-Knowledge is POWER
                          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                          دیدگاه


                            #14
                            پاسخ : تبدیل کد Codevision به Bascom

                            نه راستش فعلا سرش وقت نگذاشتم تلاشمو میکنم نشد خبرتون میکنم.
                            آخه مشکلم اینه که اصلا نمی فهمم کد C داره چی میکنه؟!؟؟!
                            الهم عجل لولیک الفرج

                            فقط 313 نفر...

                            دیدگاه


                              #15
                              پاسخ : تبدیل کد Codevision به Bascom

                              با سلام
                              میشه کدهای راه اندازی ال سی دی برای زبان بیسیک را یکبار دیگه اپلود کنید؟
                              با تشکر

                              دیدگاه

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