اطلاعیه

Collapse
No announcement yet.

هنگ میکرو هنگام" PRINT "ATCMGR=1

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

    هنگ میکرو هنگام" PRINT "ATCMGR=1

    سلام دوستان
    اخیرا یک پروژه با سDم 800 و بیسک راه اندازی کردم.
    از اینتراپت وقفه سریال استفاده کردم.هر وفت وقفه سریال فعال میشه .در داخل وقفه بصورت نمونه کد زیر مقدار بافرUDRرادر متغیر رشته ای RINGذخیره می کنم.
    تابع وقفه :
    کد:
    Capture:
    B = Udr
    If B <> 10 And B <> 13 And B <> 0 Then Ring = Ring + Chr(b)
    If B = 10 Then Incr T
    If T = 2 Then : Zing = Ring : T = 0 : Ring = "" : End If
    Return
    عبارت وقفه رو درست دریافت می کنه هر وقت زنگ می زنم بدون کمترین اشتباهی عبارت RING میده یا هر وقت پیام میدم عبارت CMTI= "SM"1+ رو هم میده شاید صد بار تست کردم و هیچ وقت اشتباه نشده .
    اما مشکل از اونجا پیش میاد که ووقتی از روی اطلاعات سریال متوجه وجود پیام میشم به تابع دریافت پیامک میرم و عبارت "PRINT "AT+CMGR=1رو برای میکرو می فرستم در اخل تابع دریافت پیامک برای ماژول می فرستم .
    اما بعد از ارسال این دستور میکرو هنگ می کنه.و برنامه از اول اجرا میشه.
    تابع خوندن پیامک:
    کد:
     Resive_pm:
    Print "AT+CMGR=1"
    B = 0 : Pms = ""
    Do
     B = Inkey()
     Select Case B
     Case 0
     Case 10
     Case 13
     If Pms <> "" Then Exit Do
     Case Else
     Pms = Pms + Chr(b)
     End Select
    Loop
    Return
    والا الان چند روزه که درگیر این قضیه هستم.تابع دریافت پیامک درسته چون قبلا با این کار کردم.
    حیران موندم.
    جدیدترین ویرایش توسط Namvar14; ۰۰:۵۷ ۱۳۹۷/۰۶/۲۸.
    eshop-hodhod.ir

    #2
    پاسخ : هنگ میکرو هنگام&quot; PRINT &quot;ATCMGR=1

    دوستان الان من به راختی دستور; atd+999158871616 برای برقراری تماس می فرستم.تماس برقرار میشه و برنامه ریست نمیشه این یعنی پایه rxماژول دستورات و می گیره.فقط با at+cmgr=1مشکل داره.
    امرزو میکرو رو ه عوض کردم نشد.عجیبه.
    شاید دستوری رو برای ماژول فرستادم.اینجوری شده.
    اینم بگم دستورat+cmgr=1رو با هایپر ترمینال ویندوز به ماژول میدم مشکلی نداره.چرا اینجوری میشه.؟
    eshop-hodhod.ir

    دیدگاه


      #3
      پاسخ : هنگ میکرو هنگام&quot; PRINT &quot;ATCMGR=1

      نوشته اصلی توسط Namvar14 نمایش پست ها
      دوستان الان من به راختی دستور; atd+999158871616 برای برقراری تماس می فرستم.تماس برقرار میشه و برنامه ریست نمیشه این یعنی پایه rxماژول دستورات و می گیره.فقط با at+cmgr=1مشکل داره.
      امرزو میکرو رو ه عوض کردم نشد.عجیبه.
      شاید دستوری رو برای ماژول فرستادم.اینجوری شده.
      اینم بگم دستورat+cmgr=1رو با هایپر ترمینال ویندوز به ماژول میدم مشکلی نداره.چرا اینجوری میشه.؟
      سلام
      طول رشته pms به اندازه ای هست که بتونه کل متن پیام رو درون خودش جا بده؟؟
      به نظر من برنامه از طول رشته pms تجاوز میکنه که این اتفاق ممکنه باعث ریست شدن میکرو بشه

      دیدگاه


        #4
        پاسخ : هنگ میکرو هنگام&quot; PRINT &quot;ATCMGR=1

        طول رشته pms برابر 250 هست .مطمینم از اون نست.
        بعد کلی ور رفتن متوجه یک قضیه شدم.
        زمانی که وقفه فرمان وجود پیامک رو در بافر میاره در ابتدای کار وقفه سریال یا وقفه کلی رو غیر فعال می کنم میرم و پیام رو می خونم.
        پیام خونده میشه و برای یک بار پیام ارسالی رو نشون میده بعد از اون دوباره وقفه کلی رو در داخل برنامه فعالش می کنم دوباره هنگ میکنه این سری ریست نمیشه برنامه در همونجا میمونه.
        ولی اگر وقفه کلی غیر فعال نشه هنگام ارسال دستور
        کد:
        PRINT "AT+CMGR=1"
        کلا هنگ می کنه.و ریست میشه.
        اساتید علت ؟
        جدیدترین ویرایش توسط Namvar14; ۰۶:۴۴ ۱۳۹۷/۰۶/۳۰.
        eshop-hodhod.ir

        دیدگاه


          #5
          پاسخ : هنگ میکرو هنگام&quot; PRINT &quot;ATCMGR=1

          دوستان لطفا وقت بذارید و تجربیات خودتون رو بگید.چرا باید دردستورمورد نظر مون میکرو به حالت هنگ بره.
          چه دلایلی باعث مشه این اتفاق بیفته.
          eshop-hodhod.ir

          دیدگاه


            #6
            پاسخ : هنگ میکرو هنگام&quot; PRINT &quot;ATCMGR=1

            نوشته اصلی توسط Namvar14 نمایش پست ها
            طول رشته pms برابر 250 هست .مطمینم از اون نست.
            بعد کلی ور رفتن متوجه یک قضیه شدم.
            زمانی که وقفه فرمان وجود پیامک رو در بافر میاره در ابتدای کار وقفه سریال یا وقفه کلی رو غیر فعال می کنم میرم و پیام رو می خونم.
            پیام خونده میشه و برای یک بار پیام ارسالی رو نشون میده بعد از اون دوباره وقفه کلی رو در داخل برنامه فعالش می کنم دوباره هنگ میکنه این سری ریست نمیشه برنامه در همونجا میمونه.
            ولی اگر وقفه کلی غیر فعال نشه هنگام ارسال دستور
            کد:
            PRINT "AT+CMGR=1"
            کلا هنگ می کنه.و ریست میشه.
            اساتید علت ؟
            اگه از این روش استفاده نکردی، پیشنهاد میکنم از این روش بری جلو

            دیدگاه


              #7
              پاسخ : هنگ میکرو هنگام&quot; PRINT &quot;ATCMGR=1

              سلام مشکلم تا حدودی حل شد.چجوری؟ اینجوری
              با اومدن پیامک ،می رفتم برای ارسال دستورخوندن پیامک سیم کارت.مشکل ازز اینجا می اومدزمانی که به پورت سریال می گفتم پیامک سیم کارت بده بخونم،انگاری در همون حین وقفه سریال دوباره اتفاق می افتادو می رفت به isr وقفه ودر اینجا معلومه خطا ایجاد میشه. .به ناچار اومدم زمانی که دستور خوندن پیام و میدادم به ماژول وقفه رو با disable urxc غیر فعال می کردم.همزمانی که کار خودندن پیام تموم میشد دوباره فعال می کردم.مشکلم حل شد.ولی باز هم دوستان این برنامه یک برنامه صنعتی است.در یک محیط پرنویز .آیا این روش مشکلی در روند کارنداره؟
              جدیدترین ویرایش توسط Namvar14; ۲۳:۰۲ ۱۳۹۷/۰۷/۰۱.
              eshop-hodhod.ir

              دیدگاه

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