اطلاعیه

Collapse
No announcement yet.

پرواز از بیسیک به C(کمک کنید)

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

    پرواز از بیسیک به C(کمک کنید)

    سلام
    دوستان من چند ساله که با بسکام برنامه مینویسم
    تقریبا مسلط هستم
    حالا میخوام کدویژن رو یاد بگیرم
    اما C بلد نیستم
    الان نمیدونم از کجا باید شروع کنم
    چندتا مقاله رو دانلود کردم اما چیزی ازش نفهمیدم
    اول باید Cرو یاد بگیرم؟ یا مستقیم میتونم کدویژن رو یاد بگیرم؟
    آموزش مفیدی دارین بهم بدین؟ یا کتابی ک بتونم بخرم؟
    متشکرم
    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

    116 کتابخانه مورد نیاز برای Altium Designer

    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

    #2
    پاسخ : پرواز از بیسیک به C(کمک کنید)

    سلام
    شما اگه تجربه کار با c رو ندارید بهتره به سراغ کتاب برنامه نویسی به زبان C تالیف عین الله جعفر نژاد قمی برید
    خیلی کتاب خوبی هست البته تمام مطالبش لازم به یادگیری نیست برای شروع خوبه
    بعد از یادگیری نسبی زبان بهترین مرجع یادگیری Help و Index نرم افزار هست
    موفق باشید

    دیدگاه


      #3
      پاسخ : پرواز از بیسیک به C(کمک کنید)

      نوشته اصلی توسط masoud_m_bf
      سلام
      دوستان من چند ساله که با بسکام برنامه مینویسم
      تقریبا مسلط هستم
      حالا میخوام کدویژن رو یاد بگیرم
      اما C بلد نیستم
      الان نمیدونم از کجا باید شروع کنم
      چندتا مقاله رو دانلود کردم اما چیزی ازش نفهمیدم
      اول باید Cرو یاد بگیرم؟ یا مستقیم میتونم کدویژن رو یاد بگیرم؟
      آموزش مفیدی دارین بهم بدین؟ یا کتابی ک بتونم بخرم؟
      متشکرم
      سلام اقا مسعود
      یه سوال ؟ :question:چقدر بسکام مسلطی؟
      مشکل مارو حل میکنی؟خدا خیرت بده
      راستی تا یادم نرفته!برنامه gps هستش


      $regfile = "m32def.dat"
      $crystal = 11059200
      $baud = 9600

      $lib "glcdKS108.lib"
      $include "font8x8.font"
      Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 3 , Ce2 = 4 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 2
      Cls
      Setfont Font8x8

      Config Portb.0 = Output
      Config Portb.1 = Input

      Dim Cnt As Word , Zero_h As String * 1 , Zero_m As String * 1 , Speed As Word , Gprmc_p As Word , M As Bit , Lat As String * 12 , Lon As String * 12 , Gprmc As String * 520 , Gmt_date As String * 10 , Speed_knot As String * 5 , Teh_h As Word , Teh_m As Word , Teh_s As Word , Gmt_h As String * 2 , Gmt_m As String * 2 , Gmt_s As String * 2 , Time_hm As Word , Time_mm As Word

      '-------------------------------------------------------------------------------
      Enable Interrupts
      Enable Urxc
      On Urxc Rx_in
      '-------------------------------------------------------------------------------
      Line(0 , 0) -(127 , 0) , 1
      Line(0 , 0) -(0 , 63) , 1
      Line(127 , 0) -(127 , 63) , 1
      Line(0 , 63) -(127 , 63) , 1
      Lcdat 2 , 19 , Chr(136) ; Chr(128) ; Chr(134) ; Chr(135) ; Chr(133) ; Chr(135) ; Chr(132) ; Chr(131) ; Chr(130) ; Chr(129) ; Chr(128) ; Chr(127)
      Lcdat 4 , 6 , Chr(126) ; Chr(128) ; Chr(134) ; Chr(142) ; Chr(141) ; Chr(130) ; Chr(140) ; Chr(130) ; Chr(132) ; Chr(139) ; Chr(130) ; Chr(138) ; Chr(137) ; Chr(128) ; Chr(134)
      Lcdat 7 , 12 , "Connecting..."
      '-------------------------------------------------------------------------------
      Do
      If M = 1 Then
      If Cnt > 80 Then
      Reset Portb.0
      Disable Urxc

      If Pinb.1 = 0 Then
      Time_hm = 3
      Time_mm = 30
      Else
      Time_hm = 4
      Time_mm = 30
      End If

      Gosub Ext
      Gosub Monitor
      Cnt = 0
      M = 0
      Set Portb.0
      Enable Urxc
      End If
      End If
      Loop
      End

      '-------------------------------------------------------------------------------

      Ext:

      Gmt_h = Mid(gprmc , 2 , 2)
      Gmt_m = Mid(gprmc , 4 , 2)
      Gmt_s = Mid(gprmc , 6 , 2)
      Teh_h = Val(gmt_h) + Time_hm
      Teh_m = Val(gmt_m) + Time_mm

      If Teh_h >= 24 Then
      Teh_h = Teh_h - 24
      End If

      If Teh_m >= 60 Then
      Teh_m = Teh_m - 60
      Teh_h = Teh_h + 1
      End If

      If Teh_h < 10 Then
      Zero_h = "0"
      Else
      Zero_h = ""
      End If

      If Teh_m < 10 Then
      Zero_m = "0"
      Else
      Zero_m = ""
      End If

      Lat = Mid(gprmc , 15 , 9)
      Lon = Mid(gprmc , 27 , 10)
      Speed_knot = Mid(gprmc , 40 , 5)
      Speed = Val(speed_knot) * 1.852
      Gmt_date = "20" + Mid(gprmc , 56 , 2) + "-" + Mid(gprmc , 54 , 2) + "-" + Mid(gprmc , 52 , 2)

      Return

      '-------------------------------------------------------------------------------

      Monitor:
      Cls
      Lcdat 1 , 1 , "Teh " ; Zero_h ; Teh_h ; ":" ; Zero_m ; Teh_m ; ":" ; Gmt_s
      Lcdat 2 , 1 , "GMT " ; Gmt_h ; ":" ; Gmt_m
      Lcdat 3 , 1 , "Date " ; Gmt_date
      Lcdat 4 , 1 , "Lat " ; Lat
      Lcdat 5 , 1 , "Lon " ; Lon
      Lcdat 6 , 1 , "Speed " ; Speed ; " Km/H"
      Return

      '-------------------------------------------------------------------------------

      Rx_in:
      Incr Cnt
      Gprmc = Gprmc + Chr(udr)
      Gprmc_p = Instr(gprmc , "GPRMC&quot
      If Gprmc_p > 0 Then
      Cnt = 0
      Gprmc = ""
      M = 1
      End If
      Return



      سوال در مورد برنامه تو یه قسمت از برنامه
      Do
      If M = 1 Then
      If Cnt > 80 Then
      Reset Portb.0
      Disable Urxc
      یه توضیح در مورد m میدید که چیه ؟کارش چیه؟
      portb.0 , portb.1 به چی وصل میشن؟
      تو یه قسمت دیگه
      Enable Interrupts
      Enable Urxc
      On Urxc Rx_in
      از urxc استفاده کردید.urxc فعال سازی ورودی سریال هستش؟یعنی یه سیکل کامل اطلاعات وارد شه؟
      **** k i n j ****

      دیدگاه


        #4
        پاسخ : پرواز از بیسیک به C(کمک کنید)

        Do
        If M = 1 Then
        If Cnt > 80 Then
        Reset Portb.0
        Disable Urxc
        یه توضیح در مورد m میدید که چیه ؟کارش چیه؟
        portb.0 , portb.1 به چی وصل میشن؟
        تو یه قسمت دیگه
        Enable Interrupts
        Enable Urxc
        On Urxc Rx_in
        از urxc استفاده کردید.urxc فعال سازی ورودی سریال هستش؟یعنی یه سیکل کامل اطلاعات وارد شه؟





        خوب شاید یهکم من بتونم کمک کنم
        سوال اول M : که یه متغیره و از جنس بیت یعنی 0 یا 1
        ودستورش گفته که اگر M متغیر برابر 1 شد و بعد از اون اگر متغیره CNT (که از جنس WORD) است بزرگ تر از 80 شد
        پایه Portb.0 که به عنوان خروجی انتخاب شده را صفر کن ویا ریست کن

        وسوال بعدی : تا شماتیک مدارتو نبینم نمی تونم بگم که پایه های B0 و B1 به چی وصل میشن
        وسوال اخر : ابتدا وقفه میکرو فعال شد با دستور Enable Interrupts
        وهمچنین Enable Urxc : که مربوط به فعال شدن وقفه اطلاعات دریافتی بصورت سریال . که موقعی که اطلاعات کامل بصورت سریال دریافت شد .و قفه فعال شده و درموقع سریز به : Rx_in : که یه برچسب است پرش میکنه
        تا دستور بعدی را انجام بده
        امیدوارم بدردت خورده باشه البته من با ماژول های GPS کار نکردم
        موفق

        دیدگاه


          #5
          پاسخ : پرواز از بیسیک به C(کمک کنید)

          نوشته اصلی توسط سینا پاشایی
          Do
          If M = 1 Then
          If Cnt > 80 Then
          Reset Portb.0
          Disable Urxc
          یه توضیح در مورد m میدید که چیه ؟کارش چیه؟
          portb.0 , portb.1 به چی وصل میشن؟
          تو یه قسمت دیگه
          Enable Interrupts
          Enable Urxc
          On Urxc Rx_in
          از urxc استفاده کردید.urxc فعال سازی ورودی سریال هستش؟یعنی یه سیکل کامل اطلاعات وارد شه؟





          خوب شاید یهکم من بتونم کمک کنم
          سوال اول M : که یه متغیره و از جنس بیت یعنی 0 یا 1
          ودستورش گفته که اگر M متغیر برابر 1 شد و بعد از اون اگر متغیره CNT (که از جنس WORD) است بزرگ تر از 80 شد
          پایه Portb.0 که به عنوان خروجی انتخاب شده را صفر کن ویا ریست کن

          وسوال بعدی : تا شماتیک مدارتو نبینم نمی تونم بگم که پایه های B0 و B1 به چی وصل میشن
          وسوال اخر : ابتدا وقفه میکرو فعال شد با دستور Enable Interrupts
          وهمچنین Enable Urxc : که مربوط به فعال شدن وقفه اطلاعات دریافتی بصورت سریال . که موقعی که اطلاعات کامل بصورت سریال دریافت شد .و قفه فعال شده و درموقع سریز به : Rx_in : که یه برچسب است پرش میکنه
          تا دستور بعدی را انجام بده
          امیدوارم بدردت خورده باشه البته من با ماژول های GPS کار نکردم
          موفق
          من چی بگم دیگه؟
          کامله!
          البته منم GPS کار نکردم
          آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

          116 کتابخانه مورد نیاز برای Altium Designer

          از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

          دیدگاه


            #6
            پاسخ : پرواز از بیسیک به C(کمک کنید)

            نوشته اصلی توسط مـ ـیـ ـلاد
            سلام
            شما اگه تجربه کار با c رو ندارید بهتره به سراغ کتاب برنامه نویسی به زبان C تالیف عین الله جعفر نژاد قمی برید
            خیلی کتاب خوبی هست البته تمام مطالبش لازم به یادگیری نیست برای شروع خوبه
            بعد از یادگیری نسبی زبان بهترین مرجع یادگیری Help و Index نرم افزار هست
            موفق باشید
            البته کار با کدویژن رو کمی بلدم
            پس اول C رو یاد بگیرم
            مرسی ممنون واقعا
            آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

            116 کتابخانه مورد نیاز برای Altium Designer

            از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

            دیدگاه


              #7
              پاسخ : پرواز از بیسیک به C(کمک کنید)

              سلام
              دوست عزیز برای شروع با برنامه های کوچک شروع کنید
              نمونه های برنامه های کوچک را آنالیز کنید و مجددا آنها را خودتان بنویسید

              مثلا چشمک زدن یک LED که به یک پورت وصل است در مرحله بعد هشت led را به پورت وصل کنید و آنها را به ترتیب روش کنید،
              سپس یک 7seg را راه اندازی کنید و ....
              موفق باشید
              کمتر سخن گویم
              بیشتر عمل کنیم

              دیدگاه


                #8
                پاسخ : پرواز از بیسیک به C(کمک کنید)

                نوشته اصلی توسط mpc
                سلام
                دوست عزیز برای شروع با برنامه های کوچک شروع کنید
                نمونه های برنامه های کوچک را آنالیز کنید و مجددا آنها را خودتان بنویسید

                مثلا چشمک زدن یک LED که به یک پورت وصل است در مرحله بعد هشت led را به پورت وصل کنید و آنها را به ترتیب روش کنید،
                سپس یک 7seg را راه اندازی کنید و ....
                موفق باشید
                آخه در این حد بلدم
                هم خودم خوندم هم تو دانشگاه پاس کردم
                ولی بعضی جاها ی دستور جدید که میبینم نمیدونم چیه و از کجا میتونم بفهمم چیه
                آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                116 کتابخانه مورد نیاز برای Altium Designer

                از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                دیدگاه


                  #9
                  پاسخ : پرواز از بیسیک به C(کمک کنید)

                  سلام
                  کتاب آموزش C در 21 روز رو بخونین خود جعفر نرژاد قومی اصلا نمی دونه داخل کتاباش چی نوشته شده فقط کتاب می دن بیرون و همه ما هم کتاب رو کامل نمی خونیم و به همه هم معرفی می کنیم

                  این کتاب رو و یکی از کتاب های codevision انتشارات نص یا ناقوس رو بخونین
                  هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                  دیدگاه


                    #10
                    پاسخ : پرواز از بیسیک به C(کمک کنید)

                    نوشته اصلی توسط سینا پاشایی
                    خوب شاید یهکم من بتونم کمک کنم
                    سوال اول M : که یه متغیره و از جنس بیت یعنی 0 یا 1
                    ودستورش گفته که اگر M متغیر برابر 1 شد و بعد از اون اگر متغیره CNT (که از جنس WORD) است بزرگ تر از 80 شد
                    پایه Portb.0 که به عنوان خروجی انتخاب شده را صفر کن ویا ریست کن

                    وسوال بعدی : تا شماتیک مدارتو نبینم نمی تونم بگم که پایه های B0 و B1 به چی وصل میشن
                    وسوال اخر : ابتدا وقفه میکرو فعال شد با دستور Enable Interrupts
                    وهمچنین Enable Urxc : که مربوط به فعال شدن وقفه اطلاعات دریافتی بصورت سریال . که موقعی که اطلاعات کامل بصورت سریال دریافت شد .و قفه فعال شده و درموقع سریز به : Rx_in : که یه برچسب است پرش میکنه
                    تا دستور بعدی را انجام بده
                    امیدوارم بدردت خورده باشه البته من با ماژول های GPS کار نکردم
                    موفق
                    مرسی از این که جواب دادی ولی من میخواستم بدونم تو برنامه جایی توضیح داده که این m چطوری صفر یا یک میشه؟اصلا این m چیه که صفر یا یکه
                    پایه b1 برای ساعته که جدید و قدیم داره
                    باز ممنون میشم اگه بتونید کمک کنید :agree:
                    **** k i n j ****

                    دیدگاه


                      #11
                      پاسخ : پرواز از بیسیک به C(کمک کنید)

                      سلام
                      مقدار متغییر m بیانگر وجود اطلاعات دریافتی از پورت سریال هست و هر گاه که تعداد کارکترهای دریافتی بیش از 80تا کارکتر شد زیر روتین بعدی اجرا می شه متغییر cnt هم تعداد کارکترهای دریافتی رو نشون می ده


                      Enable Urxc
                      On Urxc Rx_in

                      وقفه مربوط به پورت سریال رو فعال می کنه و موقع دریافت کارکتر کارهای دیگه رو رها می کنه و سعی می کنه به وضعیت کارکتر دریافت در مکان زیر پرش کنه


                      Rx_in:
                      Incr Cnt
                      Gprmc = Gprmc + Chr(udr)
                      Gprmc_p = Instr(gprmc , "GPRMC&quot
                      If Gprmc_p > 0 Then
                      Cnt = 0
                      Gprmc = ""
                      M = 1
                      End If
                      Return

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

                      دیدگاه


                        #12
                        پاسخ : پرواز از بیسیک به C(کمک کنید)

                        نوشته اصلی توسط baby_1
                        سلام
                        مقدار متغییر m بیانگر وجود اطلاعات دریافتی از پورت سریال هست و هر گاه که تعداد کارکترهای دریافتی بیش از 80تا کارکتر شد زیر روتین بعدی اجرا می شه متغییر cnt هم تعداد کارکترهای دریافتی رو نشون می ده


                        Enable Urxc
                        On Urxc Rx_in

                        وقفه مربوط به پورت سریال رو فعال می کنه و موقع دریافت کارکتر کارهای دیگه رو رها می کنه و سعی می کنه به وضعیت کارکتر دریافت در مکان زیر پرش کنه


                        Rx_in:
                        Incr Cnt
                        Gprmc = Gprmc + Chr(udr)
                        Gprmc_p = Instr(gprmc , "GPRMC&quot
                        If Gprmc_p > 0 Then
                        Cnt = 0
                        Gprmc = ""
                        M = 1
                        End If
                        Return

                        بدون داشتن مدار نمی شه گفت که اون پینها چه کار می کنن
                        مرسی دوست عزیز
                        در مورد پورتها :-/
                        فکر کنم پورت b.1 واسه ساعت قدیم و جدیده
                        وقتی صفر باشه ساعت قدیم وقتی یک باشه ساعت جدید
                        ولی یه سوال دیگه؟میشه یه پرت رو بدون مقاومت صفر و یک کرد؟
                        **** k i n j ****

                        دیدگاه


                          #13
                          پاسخ : پرواز از بیسیک به C(کمک کنید)

                          نوشته اصلی توسط mpc
                          سلام
                          دوست عزیز برای شروع با برنامه های کوچک شروع کنید
                          نمونه های برنامه های کوچک را آنالیز کنید و مجددا آنها را خودتان بنویسید

                          مثلا چشمک زدن یک LED که به یک پورت وصل است در مرحله بعد هشت led را به پورت وصل کنید و آنها را به ترتیب روش کنید،
                          سپس یک 7seg را راه اندازی کنید و ....
                          موفق باشید
                          ببخشید
                          من فهمیدم که از همون LED بیشتر بلد نیستم
                          لطف میکنید بگید مشکل برنامه زیر چیه؟
                          #include <mega16.h>
                          #include <delay.h>

                          flash unsigned char digitt[10]={0x3F,0x03,0x6D,0x67,0x53,0x76,0x7E,0x23,0x7F,0x7 7};
                          int i;

                          void main (void)
                          {
                          DDRC=0xFF;
                          while(1)
                          {
                          for(i=0;i<=9;i++)
                          {
                          PORTC=digitt[i];
                          delay_ms(200);
                          }
                          }
                          }

                          این ارور رو میده: Linker error: the program has no 'main' function
                          آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                          116 کتابخانه مورد نیاز برای Altium Designer

                          از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                          دیدگاه


                            #14
                            پاسخ : پرواز از بیسیک به C(کمک کنید)

                            سلام
                            من C رو با PIC کار کردم اما فکر کنم شکل تصحیح شده برنامه شما به این صورت هست(چون نمی دونم فیوز بیتهای AVR چه جوری هست برای ورودی و خروجی پورت)

                            کد:
                            #include <mega16.h>
                            #include <delay.h>
                            
                            flash unsigned char digitt[10]={0x3F,0x03,0x6D,0x67,0x53,0x76,0x7E,0x23,0x7F,0x77};
                            int i;
                            
                            int main()
                            {
                              DDRC=0xFF;
                              while(1)
                              {
                                for(i=0;i<=9;i++)
                                {
                                  PORTC=digitt[i]; 
                                  delay_ms(200);
                                }
                              }
                            }
                            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                            دیدگاه


                              #15
                              پاسخ : پرواز از بیسیک به C(کمک کنید)

                              نوشته اصلی توسط baby_1
                              سلام
                              من C رو با PIC کار کردم اما فکر کنم شکل تصحیح شده برنامه شما به این صورت هست(چون نمی دونم فیوز بیتهای AVR چه جوری هست برای ورودی و خروجی پورت)

                              کد:
                              #include <mega16.h>
                              #include <delay.h>
                              
                              flash unsigned char digitt[10]={0x3F,0x03,0x6D,0x67,0x53,0x76,0x7E,0x23,0x7F,0x77};
                              int i;
                              
                              int main()
                              {
                                DDRC=0xFF;
                                while(1)
                                {
                                  for(i=0;i<=9;i++)
                                  {
                                    PORTC=digitt[i]; 
                                    delay_ms(200);
                                  }
                                }
                              }
                              ممنونم ولی حل نشد
                              آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                              116 کتابخانه مورد نیاز برای Altium Designer

                              از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                              دیدگاه

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