اطلاعیه

Collapse
No announcement yet.

*** شروع کار با GPS (بحث ها و سوالات پایه ای)

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

    سلام دوستان مجدد
    آقایون مشکلتون دقیقا چیه با این gps ه بیچاره، من قبلا یه تاپیک تو انجمن داشتم که کامل مباحث gps و توش بحث کردم و با pic راه اندازی شد، همه چم و خم برنامه نویسی basic هم مطرح شده و نمونه داده ها تفسیرشون چجوری میشه داده هارو استخراج کرد و ....
    قطعا باید usart تون رو با اینتراپت راه بندازین وقتی حجم عظیم داده داره به سرعت به سمتتون میاد...
    این لینک اون تاپیکه :
    http://www.eca.ir/forum2/index.php?topic=13592.0

    از همون صفحه اول شروع کنید با دقت بخونید، از زیادی صفحات نترسید (آخراش اکثرا اسپمه...)، همه چی توضیح داده شده...
    (صفحه دوم هم برنامه نویسی شروع میشه)
    مشغول در این دنیای آکل و ماکول .......

    دیدگاه


      پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

      نوشته اصلی توسط محمد فیض اله زاده
      من هم امیدوارم
      ولی قرار ندادن اون روی وبسایت به معنی وجود یه مشکل بزرگ برای انتشار دادنش هست و ایمیل نکردن مقاله به شما نیز برمیگرده به اون مشکل !! زیاد نمی تونم توضیح بدم . فقط می تونم بگم منتظر باشید .... همین .. :redface:
      اقا محمد :cry: :cry: :cry: :cry: :cry2: :cry2: :cry2: :cry2: :cry2:
      **** k i n j ****

      دیدگاه


        پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

        سلام اقا نوید
        میشه برنامه تون رو بذارید تا ببینیم :question:
        اینم خدمت دوستان گلم
        کد:
        $regfile = "m32def.dat"
        $crystal = 12000000
        $baud = 9600
        $lib "glcdKS108.lib"
        $lib "mcsbyteint.lbx"
        
        $swstack = 64
        $hwstack = 64
        $framesize = 64
        
        Macro Font8 : Setfont Font8x8 : End Macro
        
        Macro Font16 : Setfont Font16x16 : End Macro
        
        Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Porta , Ce = 1 , Ce2 = 0 , Cd = 5 , Rd = 4 , Reset = 2 , Enable = 3
        
        Config Timer2 = Timer , Prescale = 128 , Async = On
        
        Config Single = Scientific , Digits = 6
        
        Config Watchdog = 16 : Stop Watchdog
        
        Cls
        
        Declare Function Shamsi_date() As String
        Declare Function Iran_time() As String
        Declare Function Dm2dd(byval Value As String) As Single
        
        Declare Sub Anglerad(w As Single)
        Declare Sub Cir(byval D As Single , Byval Color As Byte)
        
        Config Portd.4 = Input : Set Portd.4 : Key1 Alias Pind.4
        Config Portd.5 = Input : Set Portd.5 : Key2 Alias Pind.5
        Config Portd.6 = Input : Set Portd.6 : Key3 Alias Pind.6
        'Define Constant
        Const Pirad = 3.1415926 / 180
        Const Angle = 90
        Const Centrex = 64
        Const Centrey = 32
        Const Placeradius = 25
        'Define String
        Dim Gps_data As String * 100
        Dim Data_in As String * 1
        Dim Utc_time As String * 6
        Dim Status As String * 1
        Dim Latitude As String * 9
        Dim Longitude As String * 10
        Dim Dir_lat As String * 1
        Dim Dir_lon As String * 1
        Dim Rmc As String * 100
        Dim Gga As String * 100
        Dim Gsv As String * 100
        Dim Gsa As String * 100
        Dim Total_sat As String * 2
        Dim Available_sat As String * 2
        Dim Knots As String * 5
        Dim Course As String * 5
        Dim Utc_date As String * 6
        Dim Altitude As String * 7
        Dim Dist_str As String * 15
        Dim _ystr As String * 2
        Dim _dstr As String * 2
        Dim _mstr As String * 2
        Dim H_str As String * 2
        Dim M_str As String * 2
        Dim S_str As String * 2
        'Define Byte
        Dim Data_len As Byte
        Dim Start_reading As Byte
        Dim Pos_rmc As Byte
        Dim Lrmc As Byte
        Dim Pos_gga As Byte
        Dim Lgga As Byte
        Dim Pos_gsv As Byte
        Dim Lgsv As Byte
        Dim Pos_gsa As Byte
        Dim Lgsa As Byte
        Dim Rmc_pos As Byte
        Dim Gsv_pos As Byte
        Dim Gga_pos As Byte
        Dim X As Byte
        Dim Y As Byte
        Dim Menu As Byte
        Dim Iloop As Byte
        Dim Jmonth_a(12) As Byte
        Dim Mmonth_a(12) As Byte
        Dim Start_distance As Byte
        Dim Reset_count As Byte
        Dim Once As Byte
        'Define Single
        Dim Lat1 As Single
        Dim Lon1 As Single
        Dim Mps As Single
        Dim Distance As Single
        Dim Distv As Single
        Dim Dc As Single
        Dim Speed As Single
        Dim Startx As Single
        Dim Starty As Single
        Dim Seconde As Integer
        Dim Cosangle As Single
        Dim Sinangle As Single
        Dim Angle_rad As Single
        Dim Zz As Single
        Dim W As Single
        Dim An As Single
        Dim Ann As Single
        'Define Word
        Dim H_val As Word
        Dim M_val As Word
        'Definr Integer
        Dim Degree As Integer
        Dim Myear As Integer
        Dim Mday As Integer
        Dim Mmonth As Integer
        Dim Mdayofyear As Integer
        Dim Myear_ As Integer
        Dim Jday As Integer
        Dim Jmonth As Integer
        Dim Jyear As Integer
        Dim Jdayofyear As Integer
        Dim Gnumdayofyear As Integer
        Dim Temp1 As Integer
        Dim Temp2 As Integer
        Dim Temp3 As Integer
        Dim Temp4 As Integer
        'Define Bit
        Dim Ak1 As Bit
        Dim Ak2 As Bit
        Dim Ak3 As Bit
        Dim Isleapyear As Bit
        Dim Isleapyearp As Bit
        Dim Aa As Bit
        Dim Once_c As Bit
        Dim Start_reset As Bit
        'Define Long
        Dim Edistance As Eram Single
        'Alias
        Kmph Alias Knots
        Cr Alias Chr(13)
        Lf Alias Chr(10)
        '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        Mmonth_a(1) = 31 : Mmonth_a(2) = 28 : Mmonth_a(3) = 31 : Mmonth_a(4) = 30 : Mmonth_a(5) = 31
        Mmonth_a(6) = 30 : Mmonth_a(7) = 31 : Mmonth_a(8) = 31 : Mmonth_a(9) = 30 : Mmonth_a(10) = 31
        Mmonth_a(11) = 30 : Mmonth_a(12) = 31 : Gnumdayofyear = 365 : Start_distance = 0 : Menu = 1
        '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        Enable Ovf2
        Enable Urxc
        Enable Interrupts
        On Urxc Get_data
        On Ovf2 Timer2_isr
        Start Timer2
        
        If Once = 255 Then
          Once = 0
          Edistance = 0
        End If
        
        Distance = Edistance
        
        '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        Main:
        Showpic 0 , 0 , Pic
        '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        Do
          If Key3 = 0 And Ak3 = 0 Then
           Start_reset = 1
           If Reset_count = 5 Then
             Ak3 = 1
             Reset_count = 0
             Start Watchdog
           End If
          End If
        
          If Key3 = 1 And Ak3 = 1 Then Ak3 = 0
        
          If Key3 = 1 Then
           Reset_count = 0
          End If
        
          Gosub Read_data
        
          If Status = "V" Then
           If Aa = 1 Then : Aa = 0 : Cls : Goto Main : End If
        
          Elseif Status = "A" Then
           If Aa = 0 Then : Cls : Aa = 1 : End If
        
           If Key2 = 0 And Ak2 = 0 Then
             Ak2 = 1
             Incr Menu
             If Menu > 4 Then Menu = 1
             If Menu = 4 Then Once_c = 0
             Cls
           End If
        
           If Key2 = 1 And Ak2 = 1 Then Ak2 = 0
        
           If Menu = 1 Then
             Font8
             Lcdat 1 , 1 , "Iran Time"
             Font16
             Lcdat 2 , 1 , Iran_time()
             Font8
             Lcdat 4 , 1 , "Shamsi Date"
             Font16
             Lcdat 5 , 1 , Shamsi_date()
             Font8
             Lcdat 7 , 1 , "Sattelite"
             Lcdat 8 , 24 , Available_sat ; "/" ; Total_sat ; "/" ; Status
           End If
        
           If Menu = 2 Then
             Font8
             Lcdat 1 , 1 , "Latitude"
             Lcdat 2 , 24 , Lat1
             Lcdat 3 , 1 , "Longitude"
             Lcdat 4 , 24 , Lon1
             Lcdat 2 , 96 , Chr(248) ; Dir_lat
             Lcdat 4 , 96 , Chr(248) ; Dir_lon
             Lcdat 5 , 1 , "Altitude"
             Lcdat 6 , 24 , Altitude ; " m "
           End If
        
           If Menu = 3 Then
             Font8
             Lcdat 1 , 1 , "Speed"
             Font16
             Lcdat 3 , 1 , Kmph
             Font8
             Lcdat 3 , 82 , " Km/h"
             Font8
             Lcdat 5 , 1 , "Distance"
             If Distance < 1000 Then
              Lcdat 6 , 16 , Dist_str ; " m"
             Else
              Lcdat 6 , 16 , Dist_str ; " Km"
             End If
        
             Debounce Key3 , 0 , Reset_distance , Sub
        
             If Key1 = 0 And Ak1 = 0 Then
              Ak1 = 1
              Incr Start_distance
              If Start_distance > 1 Then Start_distance = 0
        
              If Start_distance = 1 Then
                Cls
                Font16
                Lcdat 1 , 24 , "Start"
                Lcdat 3 , 1 , "Distance"
                Lcdat 5 , 24 , "Meter"
                Wait 1
                Cls
              End If
        
              If Start_distance = 0 Then
                Cls
                Font16
                Lcdat 1 , 32 , "Stop"
                Lcdat 3 , 1 , "Distance"
                Lcdat 5 , 24 , "Meter"
                Wait 1
                Cls
              End If
             End If
             If Key1 = 1 And Ak1 = 1 Then Ak1 = 0
           End If
        
           If Menu = 4 Then
             If Once_c = 0 Then
              Once_c = 1
              Font16
              Lcdat 1 , 1 , " Course "
              Lcdat 3 , 1 , " Over "
              Lcdat 5 , 1 , " Ground "
              Wait 1
              Cls
             End If
             Dc = Val(course)
             If Dc <> Zz Then : Zz = Dc : Cls : End If
             Cir Dc , 1
             Course = Left(course , 3)
             Font8
             Lcdat 1 , 1 , Course ; Chr(248)
             Cir Dc , 0
           End If
        
          End If
        Loop
        End
        
        Reset_distance:
          Cls
          Distance = 0
          Edistance = 0
          Font16
          Lcdat 1 , 24 , "Reset"
          Lcdat 3 , 1 , "distance"
          Wait 1
          Start_distance = 0
          Cls
          Font16
          Lcdat 1 , 32 , "Stop"
          Lcdat 3 , 1 , "Distance"
          Lcdat 5 , 24 , "Meter"
          Wait 1
          Cls
        Return
        
        
        Read_data:
          Rmc_pos = Instr(1 , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Status = Mid(rmc , Rmc_pos , 1 )
        
          Gsv_pos = Instr(1 , Gsv , ",")
          Gsv_pos = Gsv_pos + 1
          Gsv_pos = Instr(gsv_pos , Gsv , ",")
          Gsv_pos = Gsv_pos + 1
          Total_sat = Mid(gsv , Gsv_pos , 2)
        
          Gga_pos = Instr(1 , Gga , ",")
          Gga_pos = Gga_pos + 1
          Gga_pos = Instr(gga_pos , Gga , ",")
          Gga_pos = Gga_pos + 1
          Gga_pos = Instr(gga_pos , Gga , ",")
          Gga_pos = Gga_pos + 1
          Gga_pos = Instr(gga_pos , Gga , ",")
          Gga_pos = Gga_pos + 1
          Gga_pos = Instr(gga_pos , Gga , ",")
          Gga_pos = Gga_pos + 1
          Gga_pos = Instr(gga_pos , Gga , ",")
          Gga_pos = Gga_pos + 1
          Available_sat = Mid(gga , Gga_pos , 2)
        
          Utc_time = Mid(rmc , 1 , 6)
        
          Rmc_pos = Instr(rmc_pos , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Latitude = Mid(rmc , Rmc_pos , 9)
        
          Rmc_pos = Instr(rmc_pos , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Dir_lat = Mid(rmc , Rmc_pos , 1)
        
          Rmc_pos = Instr(rmc_pos , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Longitude = Mid(rmc , Rmc_pos , 10)
        
          Rmc_pos = Instr(rmc_pos , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Dir_lon = Mid(rmc , Rmc_pos , 1)
        
          Rmc_pos = Instr(rmc_pos , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Knots = Mid(rmc , Rmc_pos , 5)
        
          Rmc_pos = Instr(rmc_pos , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Course = Mid(rmc , Rmc_pos , 5)
        
          Rmc_pos = Instr(rmc_pos , Rmc , ",")
          Rmc_pos = Rmc_pos + 1
          Utc_date = Mid(rmc , Rmc_pos , 6)
        
          Gga_pos = Instr(gga_pos , Gga , ",")
          Gga_pos = Gga_pos + 1
          Gga_pos = Instr(gga_pos , Gga , ",")
          Gga_pos = Gga_pos + 1
          Altitude = Mid(gga , Gga_pos , 6)
        
          Speed = Val(knots) : Speed = Speed * 1.852
        
          Select Case Speed
           Case 0 To 9
             Knots = "00" + Fusing(speed , "#.#")
           Case 10 To 99
             Knots = "0" + Fusing(speed , "#.#")
           Case 100 To 999
             Knots = Fusing(speed , "#.#")
          End Select
        
          Lat1 = Dm2dd(latitude)
          Lon1 = Dm2dd(longitude)
        
          Dist_str = Fusing(distv , "#.#")
        
        Return
        
        
        Sub Anglerad(w As Single)
          Angle_rad = Angle - W
          Angle_rad = Angle_rad * Pirad
          Sinangle = Sin(angle_rad) : Cosangle = Cos(angle_rad)
        End Sub
        
        Sub Cir(byval D As Single , Byval Color As Byte)
          Local Tx As Byte
          Local Ty As Byte
        
          If Color = 0 Then
           W = D - 1
          Else
           W = D
          End If
        
          Call Anglerad(w)
          W = Placeradius * Cosangle
          Startx = Centrex + W
          W = Placeradius * Sinangle
          Starty = Centrey - W
          Startx = Round(startx) : Starty = Round(starty)
          X = Int(startx) : Y = Int(starty)
          Circle(x , Y) , 3 , Color
          Circle(centrex , Centrey) , 30 , 255
        End Sub
        
        Get_data:
        
          Data_in = Chr(udr)
        
          If Start_reading = 0 And Data_in = "$" Then Incr Start_reading
          If Start_reading = 1 And Data_in = "G" Then Incr Start_reading
          If Start_reading = 2 And Data_in = "P" Then Incr Start_reading
        
          If Data_in = Cr Then
           Pos_rmc = Instr(gps_data , "RMC")
        
           If Pos_rmc > 0 Then
             Pos_rmc = Pos_rmc + 4
             Lrmc = Len(gps_data)
             Rmc = Mid(gps_data , Pos_rmc , Lrmc )
           End If
        
           Pos_gga = Instr(gps_data , "GGA")
        
           If Pos_gga > 0 Then
             Pos_gga = Pos_gga + 4
             Lgga = Len(gps_data)
             Gga = Mid(gps_data , Pos_gga , Lgga )
           End If
        
           Pos_gsv = Instr(gps_data , "GSV")
        
           If Pos_gsv > 0 Then
             Pos_gsv = Pos_gsv + 4
             Lgsv = Len(gps_data)
             Gsv = Mid(gps_data , Pos_gsv , Lgsv )
           End If
        
           Pos_gsa = Instr(gps_data , "GSA")
        
           If Pos_gsa > 0 Then
             Pos_gsa = Pos_gsa + 4
             Lgsa = Len(gps_data)
             Gsa = Mid(gps_data , Pos_gsa , Lgsa )
           End If
        
           Incr Start_reading
        
          End If
        
          If Start_reading = 4 And Data_in = Lf Then
           Gps_data = ""
           Start_reading = 0
          End If
        
          If Start_reading = 3 Then
           Gps_data = Gps_data + Data_in
          End If
        
        Return
        
        
        Function Shamsi_date() As String
        
          _dstr = Mid(utc_date , 1 , 2) : _mstr = Mid(utc_date , 3 , 2) : _ystr = Mid(utc_date , 5 , 2)
        
          Myear = Val(_ystr) + 2000
          Mday = Val(_dstr)
          Mmonth = Val(_mstr)
        
          Mdayofyear = 0
        
          Temp1 = Myear Mod 4
          Temp2 = Myear Mod 100
          Temp3 = Myear Mod 400
          Temp4 = Temp1 And Temp2
        
          If Temp4 <> 0 Or Temp3 = 0 Then
           Mmonth_a(2) = 28
          Else
           Mmonth_a(2) = 29
          End If
        
          Myear_ = Myear - 1
          Temp1 = Myear_ Mod 4
          Temp2 = Myear_ Mod 100
          Temp3 = Myear_ Mod 400
          Temp4 = Temp1 And Temp2
        
          If Temp4 <> 0 Or Temp3 = 0 Then
           Reset Isleapyearp
          Else
           Set Isleapyearp
          End If
        
          Temp1 = Mmonth - 1
        
          For Iloop = 1 To Temp1
           Mdayofyear = Mmonth_a(iloop) + Mdayofyear
          Next
        
          Mdayofyear = Mday + Mdayofyear
        
          If Mdayofyear > 79 Then
        
           Temp1 = Mdayofyear - 79
           Jyear = Myear - 621
           If Temp1 < 186 Then
             Temp2 = Temp1 Mod 31
             Temp3 = Temp1 / 31
             If Temp2 = 0 Then
              Jmonth = Temp3
              Jday = 31
             Else
              Jmonth = Temp3 + 1
              Jday = Temp2
             End If
           Else
             Temp2 = Temp1 - 186
             Temp3 = Temp2 Mod 30
             Temp4 = Temp2 / 30
             If Temp3 = 0 Then
              Jmonth = Temp4 + 6
              Jday = 30
             Else
              Jmonth = Temp4 + 7
              Jday = Temp3
             End If
           End If
        
           Else
             Jyear = Myear - 622
             If Isleapyearp = 1 Then
              Mdayofyear = Mdayofyear + 11
             Else
              Mdayofyear = Mdayofyear + 10
             End If
             Temp2 = Mdayofyear Mod 30
             Temp3 = Mdayofyear / 30
             If Temp2 = 0 Then
              Jmonth = Temp3 + 9
              Jday = 30
             Else
              Jmonth = Temp3 + 10
              Jday = Temp2
             End If
             Waitms 1
          End If
        
          Jyear = Jyear Mod 100
        
          If Jyear < 10 Then
           _ystr = "0" + Str(jyear)
          Else
           _ystr = Str(jyear)
          End If
        
          If Jmonth < 10 Then
           _mstr = "0" + Str(jmonth)
          Else
           _mstr = Str(jmonth)
          End If
        
          If Jday < 10 Then
           _dstr = "0" + Str(jday)
          Else
           _dstr = Str(jday)
          End If
        
          Shamsi_date = _ystr + "/" + _mstr + "/" + _dstr
        
        End Function
        
        Function Iran_time() As String
        
          H_str = Mid(utc_time , 1 , 2)
          M_str = Mid(utc_time , 3 , 2)
          S_str = Mid(utc_time , 5 , 2)
        
          If Jmonth < 7 Then
           H_val = Val(h_str) + 4
           M_val = Val(m_str) + 30
          Elseif Jmonth > 6 Then
           H_val = Val(h_str) + 3
           M_val = Val(m_str) + 30
          End If
          If H_val >= 24 Then H_val = H_val -24
          If M_val >= 60 Then : M_val = M_val -60 : H_val = H_val + 1 : End If
        
          If H_val < 10 Then
           H_str = "0" + Str(h_val)
          Else
           H_str = Str(h_val)
          End If
        
          If M_val < 10 Then
           M_str = "0" + Str(m_val)
          Else
           M_str = Str(m_val)
          End If
        
          Iran_time = H_str + ":" + M_str + ":" + S_str
        
        End Function
        
        Function Dm2dd(byval Value As String) As Single
        
          Local Pvalue As Byte
          Local Lovalue As Byte
          Local Value_deg As Word
          Local Value_min As Word
          Local Valuedig As String * 6
          Local Valuedec As String * 6
          Local Value_deg_dig As Single
          Local Value_deg_dec As Single
        
          Pvalue = Instr(value , ".")
          Lovalue = Len(value)
          Pvalue = Pvalue - 1
          Valuedec = Mid(value , 1 , Pvalue)
          Pvalue = Pvalue + 2
          Valuedig = Mid(value , Pvalue , Lovalue)
          Value_deg = Val(valuedec) / 100
          Value_min = Val(valuedec) Mod 100
          Value_deg_dig = Val(valuedig)
          Value_deg_dig = Value_deg_dig * 0.0001
          Value_deg_dec = Value_min + Value_deg_dig
          Value_deg_dec = Value_deg_dec / 60
          Value_deg_dec = Value_deg + Value_deg_dec
          Dm2dd = Value_deg_dec
        End Function
        
        Timer2_isr:
          Incr Reset_count
          If Status = "A" Then
           If Start_distance = 1 Then
             Mps = Speed / 3.6
             Distance = Distance + Mps
             Edistance = Distance
             If Distance < 1000 Then
              Distv = Distance
             Else
              Distv = Distance / 1000
             End If
           End If
          End If
        Return
        
        
        $include "font8x8.font"
        $include "font16x16.font"
        Pic:
        $bgf "pic1.bgf"
        دلا خو کن به تنهایی که از تنها بلا خیزد

        دیدگاه


          پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

          نوشته اصلی توسط Navid_Micro
          اینم خدمت دوستان گلم
          کد:
          $regfile = "m32def.dat"
          $crystal = 12000000
          $baud = 9600
          $lib "glcdKS108.lib"
          $lib "mcsbyteint.lbx"
          
          $swstack = 64
          $hwstack = 64
          $framesize = 64
          
          Macro Font8 : Setfont Font8x8 : End Macro
          
          Macro Font16 : Setfont Font16x16 : End Macro
          
          Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Porta , Ce = 1 , Ce2 = 0 , Cd = 5 , Rd = 4 , Reset = 2 , Enable = 3
          
          Config Timer2 = Timer , Prescale = 128 , Async = On
          
          Config Single = Scientific , Digits = 6
          
          Config Watchdog = 16 : Stop Watchdog
          
          Cls
          
          Declare Function Shamsi_date() As String
          Declare Function Iran_time() As String
          Declare Function Dm2dd(byval Value As String) As Single
          
          Declare Sub Anglerad(w As Single)
          Declare Sub Cir(byval D As Single , Byval Color As Byte)
          
          Config Portd.4 = Input : Set Portd.4 : Key1 Alias Pind.4
          Config Portd.5 = Input : Set Portd.5 : Key2 Alias Pind.5
          Config Portd.6 = Input : Set Portd.6 : Key3 Alias Pind.6
          'Define Constant
          Const Pirad = 3.1415926 / 180
          Const Angle = 90
          Const Centrex = 64
          Const Centrey = 32
          Const Placeradius = 25
          'Define String
          Dim Gps_data As String * 100
          Dim Data_in As String * 1
          Dim Utc_time As String * 6
          Dim Status As String * 1
          Dim Latitude As String * 9
          Dim Longitude As String * 10
          Dim Dir_lat As String * 1
          Dim Dir_lon As String * 1
          Dim Rmc As String * 100
          Dim Gga As String * 100
          Dim Gsv As String * 100
          Dim Gsa As String * 100
          Dim Total_sat As String * 2
          Dim Available_sat As String * 2
          Dim Knots As String * 5
          Dim Course As String * 5
          Dim Utc_date As String * 6
          Dim Altitude As String * 7
          Dim Dist_str As String * 15
          Dim _ystr As String * 2
          Dim _dstr As String * 2
          Dim _mstr As String * 2
          Dim H_str As String * 2
          Dim M_str As String * 2
          Dim S_str As String * 2
          'Define Byte
          Dim Data_len As Byte
          Dim Start_reading As Byte
          Dim Pos_rmc As Byte
          Dim Lrmc As Byte
          Dim Pos_gga As Byte
          Dim Lgga As Byte
          Dim Pos_gsv As Byte
          Dim Lgsv As Byte
          Dim Pos_gsa As Byte
          Dim Lgsa As Byte
          Dim Rmc_pos As Byte
          Dim Gsv_pos As Byte
          Dim Gga_pos As Byte
          Dim X As Byte
          Dim Y As Byte
          Dim Menu As Byte
          Dim Iloop As Byte
          Dim Jmonth_a(12) As Byte
          Dim Mmonth_a(12) As Byte
          Dim Start_distance As Byte
          Dim Reset_count As Byte
          Dim Once As Byte
          'Define Single
          Dim Lat1 As Single
          Dim Lon1 As Single
          Dim Mps As Single
          Dim Distance As Single
          Dim Distv As Single
          Dim Dc As Single
          Dim Speed As Single
          Dim Startx As Single
          Dim Starty As Single
          Dim Seconde As Integer
          Dim Cosangle As Single
          Dim Sinangle As Single
          Dim Angle_rad As Single
          Dim Zz As Single
          Dim W As Single
          Dim An As Single
          Dim Ann As Single
          'Define Word
          Dim H_val As Word
          Dim M_val As Word
          'Definr Integer
          Dim Degree As Integer
          Dim Myear As Integer
          Dim Mday As Integer
          Dim Mmonth As Integer
          Dim Mdayofyear As Integer
          Dim Myear_ As Integer
          Dim Jday As Integer
          Dim Jmonth As Integer
          Dim Jyear As Integer
          Dim Jdayofyear As Integer
          Dim Gnumdayofyear As Integer
          Dim Temp1 As Integer
          Dim Temp2 As Integer
          Dim Temp3 As Integer
          Dim Temp4 As Integer
          'Define Bit
          Dim Ak1 As Bit
          Dim Ak2 As Bit
          Dim Ak3 As Bit
          Dim Isleapyear As Bit
          Dim Isleapyearp As Bit
          Dim Aa As Bit
          Dim Once_c As Bit
          Dim Start_reset As Bit
          'Define Long
          Dim Edistance As Eram Single
          'Alias
          Kmph Alias Knots
          Cr Alias Chr(13)
          Lf Alias Chr(10)
          '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
          Mmonth_a(1) = 31 : Mmonth_a(2) = 28 : Mmonth_a(3) = 31 : Mmonth_a(4) = 30 : Mmonth_a(5) = 31
          Mmonth_a(6) = 30 : Mmonth_a(7) = 31 : Mmonth_a(8) = 31 : Mmonth_a(9) = 30 : Mmonth_a(10) = 31
          Mmonth_a(11) = 30 : Mmonth_a(12) = 31 : Gnumdayofyear = 365 : Start_distance = 0 : Menu = 1
          '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
          Enable Ovf2
          Enable Urxc
          Enable Interrupts
          On Urxc Get_data
          On Ovf2 Timer2_isr
          Start Timer2
          
          If Once = 255 Then
            Once = 0
            Edistance = 0
          End If
          
          Distance = Edistance
          
          '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
          Main:
          Showpic 0 , 0 , Pic
          '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
          Do
            If Key3 = 0 And Ak3 = 0 Then
             Start_reset = 1
             If Reset_count = 5 Then
               Ak3 = 1
               Reset_count = 0
               Start Watchdog
             End If
            End If
          
            If Key3 = 1 And Ak3 = 1 Then Ak3 = 0
          
            If Key3 = 1 Then
             Reset_count = 0
            End If
          
            Gosub Read_data
          
            If Status = "V" Then
             If Aa = 1 Then : Aa = 0 : Cls : Goto Main : End If
          
            Elseif Status = "A" Then
             If Aa = 0 Then : Cls : Aa = 1 : End If
          
             If Key2 = 0 And Ak2 = 0 Then
               Ak2 = 1
               Incr Menu
               If Menu > 4 Then Menu = 1
               If Menu = 4 Then Once_c = 0
               Cls
             End If
          
             If Key2 = 1 And Ak2 = 1 Then Ak2 = 0
          
             If Menu = 1 Then
               Font8
               Lcdat 1 , 1 , "Iran Time"
               Font16
               Lcdat 2 , 1 , Iran_time()
               Font8
               Lcdat 4 , 1 , "Shamsi Date"
               Font16
               Lcdat 5 , 1 , Shamsi_date()
               Font8
               Lcdat 7 , 1 , "Sattelite"
               Lcdat 8 , 24 , Available_sat ; "/" ; Total_sat ; "/" ; Status
             End If
          
             If Menu = 2 Then
               Font8
               Lcdat 1 , 1 , "Latitude"
               Lcdat 2 , 24 , Lat1
               Lcdat 3 , 1 , "Longitude"
               Lcdat 4 , 24 , Lon1
               Lcdat 2 , 96 , Chr(248) ; Dir_lat
               Lcdat 4 , 96 , Chr(248) ; Dir_lon
               Lcdat 5 , 1 , "Altitude"
               Lcdat 6 , 24 , Altitude ; " m "
             End If
          
             If Menu = 3 Then
               Font8
               Lcdat 1 , 1 , "Speed"
               Font16
               Lcdat 3 , 1 , Kmph
               Font8
               Lcdat 3 , 82 , " Km/h"
               Font8
               Lcdat 5 , 1 , "Distance"
               If Distance < 1000 Then
                Lcdat 6 , 16 , Dist_str ; " m"
               Else
                Lcdat 6 , 16 , Dist_str ; " Km"
               End If
          
               Debounce Key3 , 0 , Reset_distance , Sub
          
               If Key1 = 0 And Ak1 = 0 Then
                Ak1 = 1
                Incr Start_distance
                If Start_distance > 1 Then Start_distance = 0
          
                If Start_distance = 1 Then
                  Cls
                  Font16
                  Lcdat 1 , 24 , "Start"
                  Lcdat 3 , 1 , "Distance"
                  Lcdat 5 , 24 , "Meter"
                  Wait 1
                  Cls
                End If
          
                If Start_distance = 0 Then
                  Cls
                  Font16
                  Lcdat 1 , 32 , "Stop"
                  Lcdat 3 , 1 , "Distance"
                  Lcdat 5 , 24 , "Meter"
                  Wait 1
                  Cls
                End If
               End If
               If Key1 = 1 And Ak1 = 1 Then Ak1 = 0
             End If
          
             If Menu = 4 Then
               If Once_c = 0 Then
                Once_c = 1
                Font16
                Lcdat 1 , 1 , " Course "
                Lcdat 3 , 1 , " Over "
                Lcdat 5 , 1 , " Ground "
                Wait 1
                Cls
               End If
               Dc = Val(course)
               If Dc <> Zz Then : Zz = Dc : Cls : End If
               Cir Dc , 1
               Course = Left(course , 3)
               Font8
               Lcdat 1 , 1 , Course ; Chr(248)
               Cir Dc , 0
             End If
          
            End If
          Loop
          End
          
          Reset_distance:
            Cls
            Distance = 0
            Edistance = 0
            Font16
            Lcdat 1 , 24 , "Reset"
            Lcdat 3 , 1 , "distance"
            Wait 1
            Start_distance = 0
            Cls
            Font16
            Lcdat 1 , 32 , "Stop"
            Lcdat 3 , 1 , "Distance"
            Lcdat 5 , 24 , "Meter"
            Wait 1
            Cls
          Return
          
          
          Read_data:
            Rmc_pos = Instr(1 , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Status = Mid(rmc , Rmc_pos , 1 )
          
            Gsv_pos = Instr(1 , Gsv , ",")
            Gsv_pos = Gsv_pos + 1
            Gsv_pos = Instr(gsv_pos , Gsv , ",")
            Gsv_pos = Gsv_pos + 1
            Total_sat = Mid(gsv , Gsv_pos , 2)
          
            Gga_pos = Instr(1 , Gga , ",")
            Gga_pos = Gga_pos + 1
            Gga_pos = Instr(gga_pos , Gga , ",")
            Gga_pos = Gga_pos + 1
            Gga_pos = Instr(gga_pos , Gga , ",")
            Gga_pos = Gga_pos + 1
            Gga_pos = Instr(gga_pos , Gga , ",")
            Gga_pos = Gga_pos + 1
            Gga_pos = Instr(gga_pos , Gga , ",")
            Gga_pos = Gga_pos + 1
            Gga_pos = Instr(gga_pos , Gga , ",")
            Gga_pos = Gga_pos + 1
            Available_sat = Mid(gga , Gga_pos , 2)
          
            Utc_time = Mid(rmc , 1 , 6)
          
            Rmc_pos = Instr(rmc_pos , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Latitude = Mid(rmc , Rmc_pos , 9)
          
            Rmc_pos = Instr(rmc_pos , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Dir_lat = Mid(rmc , Rmc_pos , 1)
          
            Rmc_pos = Instr(rmc_pos , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Longitude = Mid(rmc , Rmc_pos , 10)
          
            Rmc_pos = Instr(rmc_pos , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Dir_lon = Mid(rmc , Rmc_pos , 1)
          
            Rmc_pos = Instr(rmc_pos , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Knots = Mid(rmc , Rmc_pos , 5)
          
            Rmc_pos = Instr(rmc_pos , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Course = Mid(rmc , Rmc_pos , 5)
          
            Rmc_pos = Instr(rmc_pos , Rmc , ",")
            Rmc_pos = Rmc_pos + 1
            Utc_date = Mid(rmc , Rmc_pos , 6)
          
            Gga_pos = Instr(gga_pos , Gga , ",")
            Gga_pos = Gga_pos + 1
            Gga_pos = Instr(gga_pos , Gga , ",")
            Gga_pos = Gga_pos + 1
            Altitude = Mid(gga , Gga_pos , 6)
          
            Speed = Val(knots) : Speed = Speed * 1.852
          
            Select Case Speed
             Case 0 To 9
               Knots = "00" + Fusing(speed , "#.#")
             Case 10 To 99
               Knots = "0" + Fusing(speed , "#.#")
             Case 100 To 999
               Knots = Fusing(speed , "#.#")
            End Select
          
            Lat1 = Dm2dd(latitude)
            Lon1 = Dm2dd(longitude)
          
            Dist_str = Fusing(distv , "#.#")
          
          Return
          
          
          Sub Anglerad(w As Single)
            Angle_rad = Angle - W
            Angle_rad = Angle_rad * Pirad
            Sinangle = Sin(angle_rad) : Cosangle = Cos(angle_rad)
          End Sub
          
          Sub Cir(byval D As Single , Byval Color As Byte)
            Local Tx As Byte
            Local Ty As Byte
          
            If Color = 0 Then
             W = D - 1
            Else
             W = D
            End If
          
            Call Anglerad(w)
            W = Placeradius * Cosangle
            Startx = Centrex + W
            W = Placeradius * Sinangle
            Starty = Centrey - W
            Startx = Round(startx) : Starty = Round(starty)
            X = Int(startx) : Y = Int(starty)
            Circle(x , Y) , 3 , Color
            Circle(centrex , Centrey) , 30 , 255
          End Sub
          
          Get_data:
          
            Data_in = Chr(udr)
          
            If Start_reading = 0 And Data_in = "$" Then Incr Start_reading
            If Start_reading = 1 And Data_in = "G" Then Incr Start_reading
            If Start_reading = 2 And Data_in = "P" Then Incr Start_reading
          
            If Data_in = Cr Then
             Pos_rmc = Instr(gps_data , "RMC")
          
             If Pos_rmc > 0 Then
               Pos_rmc = Pos_rmc + 4
               Lrmc = Len(gps_data)
               Rmc = Mid(gps_data , Pos_rmc , Lrmc )
             End If
          
             Pos_gga = Instr(gps_data , "GGA")
          
             If Pos_gga > 0 Then
               Pos_gga = Pos_gga + 4
               Lgga = Len(gps_data)
               Gga = Mid(gps_data , Pos_gga , Lgga )
             End If
          
             Pos_gsv = Instr(gps_data , "GSV")
          
             If Pos_gsv > 0 Then
               Pos_gsv = Pos_gsv + 4
               Lgsv = Len(gps_data)
               Gsv = Mid(gps_data , Pos_gsv , Lgsv )
             End If
          
             Pos_gsa = Instr(gps_data , "GSA")
          
             If Pos_gsa > 0 Then
               Pos_gsa = Pos_gsa + 4
               Lgsa = Len(gps_data)
               Gsa = Mid(gps_data , Pos_gsa , Lgsa )
             End If
          
             Incr Start_reading
          
            End If
          
            If Start_reading = 4 And Data_in = Lf Then
             Gps_data = ""
             Start_reading = 0
            End If
          
            If Start_reading = 3 Then
             Gps_data = Gps_data + Data_in
            End If
          
          Return
          
          
          Function Shamsi_date() As String
          
            _dstr = Mid(utc_date , 1 , 2) : _mstr = Mid(utc_date , 3 , 2) : _ystr = Mid(utc_date , 5 , 2)
          
            Myear = Val(_ystr) + 2000
            Mday = Val(_dstr)
            Mmonth = Val(_mstr)
          
            Mdayofyear = 0
          
            Temp1 = Myear Mod 4
            Temp2 = Myear Mod 100
            Temp3 = Myear Mod 400
            Temp4 = Temp1 And Temp2
          
            If Temp4 <> 0 Or Temp3 = 0 Then
             Mmonth_a(2) = 28
            Else
             Mmonth_a(2) = 29
            End If
          
            Myear_ = Myear - 1
            Temp1 = Myear_ Mod 4
            Temp2 = Myear_ Mod 100
            Temp3 = Myear_ Mod 400
            Temp4 = Temp1 And Temp2
          
            If Temp4 <> 0 Or Temp3 = 0 Then
             Reset Isleapyearp
            Else
             Set Isleapyearp
            End If
          
            Temp1 = Mmonth - 1
          
            For Iloop = 1 To Temp1
             Mdayofyear = Mmonth_a(iloop) + Mdayofyear
            Next
          
            Mdayofyear = Mday + Mdayofyear
          
            If Mdayofyear > 79 Then
          
             Temp1 = Mdayofyear - 79
             Jyear = Myear - 621
             If Temp1 < 186 Then
               Temp2 = Temp1 Mod 31
               Temp3 = Temp1 / 31
               If Temp2 = 0 Then
                Jmonth = Temp3
                Jday = 31
               Else
                Jmonth = Temp3 + 1
                Jday = Temp2
               End If
             Else
               Temp2 = Temp1 - 186
               Temp3 = Temp2 Mod 30
               Temp4 = Temp2 / 30
               If Temp3 = 0 Then
                Jmonth = Temp4 + 6
                Jday = 30
               Else
                Jmonth = Temp4 + 7
                Jday = Temp3
               End If
             End If
          
             Else
               Jyear = Myear - 622
               If Isleapyearp = 1 Then
                Mdayofyear = Mdayofyear + 11
               Else
                Mdayofyear = Mdayofyear + 10
               End If
               Temp2 = Mdayofyear Mod 30
               Temp3 = Mdayofyear / 30
               If Temp2 = 0 Then
                Jmonth = Temp3 + 9
                Jday = 30
               Else
                Jmonth = Temp3 + 10
                Jday = Temp2
               End If
               Waitms 1
            End If
          
            Jyear = Jyear Mod 100
          
            If Jyear < 10 Then
             _ystr = "0" + Str(jyear)
            Else
             _ystr = Str(jyear)
            End If
          
            If Jmonth < 10 Then
             _mstr = "0" + Str(jmonth)
            Else
             _mstr = Str(jmonth)
            End If
          
            If Jday < 10 Then
             _dstr = "0" + Str(jday)
            Else
             _dstr = Str(jday)
            End If
          
            Shamsi_date = _ystr + "/" + _mstr + "/" + _dstr
          
          End Function
          
          Function Iran_time() As String
          
            H_str = Mid(utc_time , 1 , 2)
            M_str = Mid(utc_time , 3 , 2)
            S_str = Mid(utc_time , 5 , 2)
          
            If Jmonth < 7 Then
             H_val = Val(h_str) + 4
             M_val = Val(m_str) + 30
            Elseif Jmonth > 6 Then
             H_val = Val(h_str) + 3
             M_val = Val(m_str) + 30
            End If
            If H_val >= 24 Then H_val = H_val -24
            If M_val >= 60 Then : M_val = M_val -60 : H_val = H_val + 1 : End If
          
            If H_val < 10 Then
             H_str = "0" + Str(h_val)
            Else
             H_str = Str(h_val)
            End If
          
            If M_val < 10 Then
             M_str = "0" + Str(m_val)
            Else
             M_str = Str(m_val)
            End If
          
            Iran_time = H_str + ":" + M_str + ":" + S_str
          
          End Function
          
          Function Dm2dd(byval Value As String) As Single
          
            Local Pvalue As Byte
            Local Lovalue As Byte
            Local Value_deg As Word
            Local Value_min As Word
            Local Valuedig As String * 6
            Local Valuedec As String * 6
            Local Value_deg_dig As Single
            Local Value_deg_dec As Single
          
            Pvalue = Instr(value , ".")
            Lovalue = Len(value)
            Pvalue = Pvalue - 1
            Valuedec = Mid(value , 1 , Pvalue)
            Pvalue = Pvalue + 2
            Valuedig = Mid(value , Pvalue , Lovalue)
            Value_deg = Val(valuedec) / 100
            Value_min = Val(valuedec) Mod 100
            Value_deg_dig = Val(valuedig)
            Value_deg_dig = Value_deg_dig * 0.0001
            Value_deg_dec = Value_min + Value_deg_dig
            Value_deg_dec = Value_deg_dec / 60
            Value_deg_dec = Value_deg + Value_deg_dec
            Dm2dd = Value_deg_dec
          End Function
          
          Timer2_isr:
            Incr Reset_count
            If Status = "A" Then
             If Start_distance = 1 Then
               Mps = Speed / 3.6
               Distance = Distance + Mps
               Edistance = Distance
               If Distance < 1000 Then
                Distv = Distance
               Else
                Distv = Distance / 1000
               End If
             End If
            End If
          Return
          
          
          $include "font8x8.font"
          $include "font16x16.font"
          Pic:
          $bgf "pic1.bgf"
          سلام اقا نوید
          شما لطف کردید برنامه رو گذاشتید حالا اگه زحمتی نیست من چندتا سوال دارم :redface:
          1-سه تا پین از پورت d را به عنوان ورودی گرفتید،لطفا کار شونو میشه توضیح بدید؟
          2-من قبلا یه برنامه از یکی دیگه از دوستان گرفته بودم ولی فونت ال سی دی رو نداده بود من خودم از رو برنامه دیگه گرفتم گذاشتم ولی عملی که بستمش یه چیزهای در هم نشون میداد که معلوم نبود چی بود،حالا میشه فونت و اون یه عکسی که تو برنامه استفاده کردید رو بذارید؟
          یه خواهش،میشه شماتیک از مدارتو بذاری؟
          خیلی ممنون از اینکه به سوالات مبتدیانه من گوش دادید
          ممنون میشم از اینکه راهنماییم کنید
          **** k i n j ****

          دیدگاه


            پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

            سلام به اساتید GPS
            دو تا سئوال دارم. قبل از جواب کمال تشکر میشود. :NO:
            1- میخواستم بدانم با تغییر هوا نیز دقت GPS تغییر میکنه ؟ :agree:
            ( هوای ابری ، بارانی ، گرامای جنوب ایران 65 درجه و هوای سرد زمستان -5 درجه )

            2- بهترین و ارزانترین( قیمت حدود؟) ماژول GPS که دقت خوبی( چند متر؟) دارد کدام است ؟ :agree:

            متشکرم :bye
            کمتر سخن گویم
            بیشتر عمل کنیم

            دیدگاه


              پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

              جواب mpc:
              1- بله تغییر میکنه، اما بیشترین تاثیر ماله جو فوقانیه، جو نزدیک زمین تاثیر داره ولی نه زیاد، اساسا GPS تفاضلی یکی از دلایل استفادش همینه (تو خارج بعضی کشورا مجانا تفاضلی ارائه میدن و بعضی جاها پولی (مثلا خود ناسا میفروشه!) که بیس های زمینی و ماهواره ای داره)...
              2- GPS های غیر نظامی (تمام GPS ها غیر از اونایی که مال ارتش آمریکاست) به کد های موج L2 ,P2 دسترسی ندارن و نرم افزاری معمولا اونو جبران میکنن ( مثلا استفاده از glonass , GPS یا سیستم inertial در کنار هم، افزایش فرکانس، فیلتر های مختلف ، ...) ، پس هیچوقت به طور دائم مخصوصا در محیط شهری نمیشه رو دقت متری برای GPS خالی حساب باز کرد... (دقت پیش بینی شده آمریکا واسه GPS های عادی 100 تا 200 متره ولی اکثر اوقات حدود 20 متر در دسترسه و در موج ارسالی کاملا این خطا توسط ماهواره مدوله میشه و اینکه واقعا با چه دقتی خروجی داشته باشه به تعداد ماهواره های در دید و هزار تا عامل دیگه بستگی داره...)
              مشغول در این دنیای آکل و ماکول .......

              دیدگاه


                پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                سلام اقا نوید
                شما لطف کردید برنامه رو گذاشتید حالا اگه زحمتی نیست من چندتا سوال دارم :redface:
                1-سه تا پین از پورت d را به عنوان ورودی گرفتید،لطفا کار شونو میشه توضیح بدید؟
                2-من قبلا یه برنامه از یکی دیگه از دوستان گرفته بودم ولی فونت ال سی دی رو نداده بود من خودم از رو برنامه دیگه گرفتم گذاشتم ولی عملی که بستمش یه چیزهای در هم نشون میداد که معلوم نبود چی بود،حالا میشه فونت و اون یه عکسی که تو برنامه استفاده کردید رو بذارید؟
                یه خواهش،میشه شماتیک از مدارتو بذاری؟
                خیلی ممنون از اینکه به سوالات مبتدیانه من گوش دادید
                ممنون میشم از اینکه راهنماییم کنید
                دوست عزیز این 3 تا پین برای کلید استفاده شده ، lcd هم KS108 هست ، ماژول هم به پایه RX مگا32 وصله ، و به پایه 29و28 که میشن TOSC1, TOCS2 یه کریستال کلاک وصله ، برای تولید زمان یک ثانیه
                شما ، خیالتون از بابت این برنامه راحته راحت باشه ، چون این پروژه واسه مشتری نوشته بودم ، تست شده ، صحیح و سالم
                :nerd:
                دلا خو کن به تنهایی که از تنها بلا خیزد

                دیدگاه


                  پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                  نوشته اصلی توسط Navid_Micro
                  دوست عزیز این 3 تا پین برای کلید استفاده شده ، lcd هم KS108 هست ، ماژول هم به پایه RX مگا32 وصله ، و به پایه 29و28 که میشن TOSC1, TOCS2 یه کریستال کلاک وصله ، برای تولید زمان یک ثانیه
                  شما ، خیالتون از بابت این برنامه راحته راحت باشه ، چون این پروژه واسه مشتری نوشته بودم ، تست شده ، صحیح و سالم
                  :nerd:
                  سلام دوست عزیز
                  ببخشید شاید سوالات من خارج از حوصله شما باشه ولی خواهشا تحملم کنید :redface:
                  دو تا پایه 28و29 به چه کریستالی وصل میشن؟12000000؟طریقه بستنش مثل xtal1,2 هستش ؟یعنی مثل این با خازن 22 پیکو؟
                  میخوام کد هگز بگیرم نیاز به فونت 8*8و16*16 ویه عکس داره .میشه خواهشن بذارید؟
                  میشه بگید اون سه تا کلید با قطع و وصل شدنش چه کار میکنه؟باید به صورت pull down یا pulup وصل شه؟
                  بازم ممنون که برای ما وقت میذارید
                  مرسی
                  **** k i n j ****

                  دیدگاه


                    پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                    سلام دوست عزیز
                    ببخشید شاید سوالات من خارج از حوصله شما باشه ولی خواهشا تحملم کنید :redface:
                    دو تا پایه 28و29 به چه کریستالی وصل میشن؟12000000؟طریقه بستنش مثل xtal1,2 هستش ؟یعنی مثل این با خازن 22 پیکو؟
                    میخوام کد هگز بگیرم نیاز به فونت 8*8و16*16 ویه عکس داره .میشه خواهشن بذارید؟
                    میشه بگید اون سه تا کلید با قطع و وصل شدنش چه کار میکنه؟باید به صورت pull down یا pulup وصل شه؟
                    بازم ممنون که برای ما وقت میذارید
                    مرسی
                    ببین دوست عزیز 28 و 29 به کریستال 32.0768 که کریستال کلاک هست وصل میشه
                    اون عکس روهم میتونی خودت یه عکس بزاری من توش نوشته بودم Searching for sattelite
                    فونت هم تو فولدر C:\program files\mcs electronics\bascom-avr\sample\lcdgraph
                    میتونی استفاده کنی ، به همین راحتی
                    اون سه تا کلید یکه واسه تعویض صفحه ، یکی اگه چند ثانیه بگیری ریست ، اون یکی هم مسافت شمار رو استارت میکنه
                    مقاومت ها هم باید pullup باشه که به صورت داخلی فعاله
                    موفق باشی دوست من
                    دلا خو کن به تنهایی که از تنها بلا خیزد

                    دیدگاه


                      پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                      نوشته اصلی توسط Navid_Micro
                      ببین دوست عزیز 28 و 29 به کریستال 32.0768 که کریستال کلاک هست وصل میشه
                      اون عکس روهم میتونی خودت یه عکس بزاری من توش نوشته بودم Searching for sattelite
                      فونت هم تو فولدر C:\program files\mcs electronics\bascom-avr\sample\lcdgraph
                      میتونی استفاده کنی ، به همین راحتی
                      اون سه تا کلید یکه واسه تعویض صفحه ، یکی اگه چند ثانیه بگیری ریست ، اون یکی هم مسافت شمار رو استارت میکنه
                      مقاومت ها هم باید pullup باشه که به صورت داخلی فعاله
                      موفق باشی دوست من
                      سلام
                      ممنون
                      الان در گیر امتحانها هستم یه 10 روز دیگه میرم تو کار ساخت فقط خواهش :rolleyes:
                      تو رو خدا اگه گیر افتادم کمکم کنید.نکنه مثل استاد قبلی اقا محمد عزیز دیگه جوابمو ندید
                      هر چند که تا حالاش هم خیلی به من لطف کردید
                      ممنون
                      **** k i n j ****

                      دیدگاه


                        پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                        نوشته اصلی توسط Navid_Micro
                        ببین دوست عزیز 28 و 29 به کریستال 32.0768 که کریستال کلاک هست وصل میشه
                        اون عکس روهم میتونی خودت یه عکس بزاری من توش نوشته بودم Searching for sattelite
                        فونت هم تو فولدر C:\program files\mcs electronics\bascom-avr\sample\lcdgraph
                        میتونی استفاده کنی ، به همین راحتی
                        اون سه تا کلید یکه واسه تعویض صفحه ، یکی اگه چند ثانیه بگیری ریست ، اون یکی هم مسافت شمار رو استارت میکنه
                        مقاومت ها هم باید pullup باشه که به صورت داخلی فعاله
                        موفق باشی دوست من
                        سلام اقا نوید
                        این عکسی که باید طراحی کرد با چه برنامه ای میشه اینکارو کرد؟
                        اقا شرمنده چون تا حالا با ال سی دی گرافیکی کار نکردم زیاد ازش سر در نمیارم اگه رو حساب بی ادبی نمیذاری عکس هم لطف کنید بذارید .به خدا خیلی کله زدم فکر نکنید از رو تنبلی از شما میخوام. ولی نتونستم :cry: :cry: :cry:
                        لطفتون رو فراموش نمیکنم :cry: :angry: :angry:
                        باید تا اخر همین ما پروژ ام رو تحویل بدم ولی هنوز تو برنامه موندم :angry: :angry: :angry: :angry: :angry:
                        ممنون
                        **** k i n j ****

                        دیدگاه


                          پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                          ببینید نه اینکه نمیخوام بدم ، راستش ما شیرازیا یکم تنبل و بی حوصله هستیم
                          راستش حوصله اپلود ندارم :mrgreen:
                          ببینید شما فتوشاپ رو باز میکنید ، یه new میزنید و واحد رو Pixel انتخاب میکنید ، بعد اندازه LCD رو وارد میکنید مثلا w=128 , h = 64
                          الان سایز عکس شما آمادست ، هرچی خواستید توش مینوسید بعد با فرمت BMP ذخیره میکنید
                          سپس میاد تو بسکام توی قسمت Tools > Graphic convertor سایز LCD رو انتخاب میکنید 2 تا تیک داره SED series و Uncompressd رو فعال میکنید و سپس ذخیره میکنید و تو نرم افزار فراخوانیش میکنید
                          به همین راحتی :wow:
                          دلا خو کن به تنهایی که از تنها بلا خیزد

                          دیدگاه


                            پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                            نوشته اصلی توسط Navid_Micro
                            ببینید نه اینکه نمیخوام بدم ، راستش ما شیرازیا یکم تنبل و بی حوصله هستیم
                            راستش حوصله اپلود ندارم :mrgreen:
                            ببینید شما فتوشاپ رو باز میکنید ، یه new میزنید و واحد رو Pixel انتخاب میکنید ، بعد اندازه LCD رو وارد میکنید مثلا w=128 , h = 64
                            الان سایز عکس شما آمادست ، هرچی خواستید توش مینوسید بعد با فرمت BMP ذخیره میکنید
                            سپس میاد تو بسکام توی قسمت Tools > Graphic convertor سایز LCD رو انتخاب میکنید 2 تا تیک داره SED series و Uncompressd رو فعال میکنید و سپس ذخیره میکنید و تو نرم افزار فراخوانیش میکنید
                            به همین راحتی :wow:
                            سلام .من این کار کرده بودم دیدم ارور میده گفتم پس اشتباه انجام میدم .حتما یه راه دیگه داره من بلد نیستم
                            من فونت 8*8 و فونت 16*16 رو تو پوشه ای که برنامه هست قرار دادم .این عکس هم درست کردم اسمشم گذاشتم pic1 ولی بازم هم ارور میده .ممنون میشم راهنمایی کنید این شاگرد تنبل رو
                            ارور ها رو تو عکس پایین گذاشتم
                            http://uploadkon.ir/?file=59cc080fa98d772bd5a687ef15956674.bmp


                            فایل های که تو پوشه برنامه گذاشتم :
                            http://uploadkon.ir/?file=d5f2f31d2fcab6a1d26f1c43839905af.jpg
                            **** k i n j ****

                            دیدگاه


                              پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                              نوشته اصلی توسط kinj
                              سلام .من این کار کرده بودم دیدم ارور میده گفتم پس اشتباه انجام میدم .حتما یه راه دیگه داره من بلد نیستم
                              من فونت 8*8 و فونت 16*16 رو تو پوشه ای که برنامه هست قرار دادم .این عکس هم درست کردم اسمشم گذاشتم pic1 ولی بازم هم ارور میده .ممنون میشم راهنمایی کنید این شاگرد تنبل رو
                              ارور ها رو تو عکس پایین گذاشتم
                              http://uploadkon.ir/?file=59cc080fa98d772bd5a687ef15956674.bmp


                              فایل های که تو پوشه برنامه گذاشتم :
                              http://uploadkon.ir/?file=d5f2f31d2fcab6a1d26f1c43839905af.jpg
                              توی include ها که مشکلی نیست
                              من اون بالا 2تا ماکرو واسه فونت تعریف کردم ، اونا رو چک کن
                              آخه مگه میشه ؟ :eek:
                              دلا خو کن به تنهایی که از تنها بلا خیزد

                              دیدگاه


                                پاسخ : *** شروع کار با GPS (بحث ها و سوالات پایه ای)

                                نوشته اصلی توسط Navid_Micro
                                توی include ها که مشکلی نیست
                                من اون بالا 2تا ماکرو واسه فونت تعریف کردم ، اونا رو چک کن
                                آخه مگه میشه ؟ :eek:
                                این دو ماکرو رو چکارش کنم :surprised:
                                Macro Font8 : Setfont Font8x8 : End Macro

                                Macro Font16 : Setfont Font16x16 : End Macro

                                مرسی.
                                **** k i n j ****

                                دیدگاه

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