اطلاعیه

Collapse
No announcement yet.

mmc در بسکام و نحوه نوشتن در text

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

    mmc در بسکام و نحوه نوشتن در text

    با سلام

    من یه فایل text روى mmc دارم که حاوى یک سرى کدِ hex هستش و با اتصال mmc به میکرو میخوام اون کدِ ها به ترتیب وارد آراىه هاى من بشن مثلا ، این داخل فایل text هستش :

    i&b11001001
    &b01011101
    .
    .
    .

    اون "i" خط اول رو در نظر نگیرید

    در ضمن pdf آقاى تروشه رو هم کامل خوندم + مدارِ آقاى chiaco !(گیر ندین برو اون linka رو بخون :biggrin:!!)

    وقتى با دستورِ "open....." فایل مربوطِ باز شد ، باید از دستورِ get استفاده بکنم.

    get ##ff،milad(500),x،y

    میخواستم بدونم :

    1-با توجه به hex هاى داخل فایل text ، اگه آرایمو بایت تعریف کنم مشکلى پیش نمى آد ؟ چون مثکه اطلاعات بایت به بایت خونده میشه... و اون کدِ hexe یه جورایى با توجه به وجودِ "b&" ده بایت داده در انتقال حساب میشه ، نمیدونم فهمیدین چى میگم یا نه !!

    2-ایشون تو pdf جاى x، yبراى یه آرایه مثلا ۵۰۰ تایى نوشتن ۱ و500 ، با توجه به اینکه ترتیبِ ورود کدِ hex از فایل به میکرو مهم هستش ، براى اینکه این ترتیب حفظ بشه چى کار باید بکنم ؟ اصلا یه توضیحى بدین که چه جورى میکرو ۵۰۰ تا کدِ رو میذاره تو ۵۰۰ تا جزء آراى ؟

    با تشکر :job:
    G*B*J*T
    انسانها به 10 گروه تقسیم می شوند آنها که باینری می فهمند و آنها که باینری نمی فهمند

    #2
    پاسخ : mmc در بسکام و نحوه نوشتن در text

    یعنی کسی اینجا با mmc کار نکرده ؟!! :sad:
    G*B*J*T
    انسانها به 10 گروه تقسیم می شوند آنها که باینری می فهمند و آنها که باینری نمی فهمند

    دیدگاه


      #3
      پاسخ : mmc در بسکام و نحوه نوشتن در text

      سلام
      دوست عزیز اعدادی رو که نشون دادی معرف اعداد باینری هستند نه هگز. در هر صورت چه هگز باشه چه باینری چون فایل txt هست، بنابراین هر چی از فایل بخونی یه کاراکتر خواهد بود. یعنی همونطور که گفتی 10 بایت 10 بایت باید بخونی بعد تبدیل کنی به بایت هدف. به طور مثال از باینری text شده به یک بایت یا از هگز text شده به یک بایت.
      از دستور line input هم استفاده کنی بهتره. طوری که در هر مراجعه به فایل یک خط رو بخون بعد تبدیل کن به یک بایت و این کار رو تا انتها انجام بده.
      موفق باشی

      دیدگاه


        #4
        پاسخ : mmc در بسکام و نحوه نوشتن در text

        کد:
        Print "Now Create file"
        Ff = Freefile()
        Open "omid.txt" For Binary As #ff
        Acc = Lof(#ff)
        Print "acc:" ; Acc
        Seek #ff , Acc
        Print #ff , ""
        Print #ff , Time$
        Print #ff , Date$
        Close #ff
        علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

        دیدگاه


          #5
          پاسخ : mmc در بسکام و نحوه نوشتن در text

          نوشته اصلی توسط _e_
          دوست عزیز اعدادی رو که نشون دادی معرف اعداد باینری هستند نه هگز.
          سلام ، ممنون بابتِ جواب.
          اره آخرش که ارسال کردم یادم اومد ، حسش نبود درستش کنم ! :mrgreen:
          من این برنامه رو با کمک help bascom نوشتم شما نگاه کن ببین درست یا نه :

          کد:
          [left]
          
          Dim Ff As Byte , Ncol As Byte , Step1(31) As Byte
          Ff = Freefile()
          Open "test.txt" For Input As #ff
          
          For Ncol = 0 To 31
          Lineinput#ff , Step1(ncol)
          Next
          
          [/left]
          فرض کنید که فایل تکست "test .text "داخل mmc هستش و ۳۲ سطر دارِه که توى هر سطر یه کدِ hex هستش.

          سه تا سوال :
          1-بین line و input فاصله باید بذارم ؟
          2-تو help bascom نوشته که در دستورِ lineinput بد از کاما متغیری که میذاریم حتما باید از نوع string باشه ، اینجورى که نمیشه !! هم ۴ برابر حافظه ازم میگیره هم باید به متن تبدیل شه ، اصلا با دستورِ ()val میشه تبدیلش کرد ؟ چون داخلش صرفا اعداد که نیست . . .
          3-میکرو هر بار که به دستورِ lineinput میرسه به ترتیب از سطر ۱ تا ۳۲ رو میفرسته داخل step1(ncol) ؟ چون از help در آوردم درست حسابى نفهمیدم.
          G*B*J*T
          انسانها به 10 گروه تقسیم می شوند آنها که باینری می فهمند و آنها که باینری نمی فهمند

          دیدگاه


            #6
            پاسخ : mmc در بسکام و نحوه نوشتن در text

            هم اکنون نیازمند یاری سبزتان هستیم ! :angry:
            G*B*J*T
            انسانها به 10 گروه تقسیم می شوند آنها که باینری می فهمند و آنها که باینری نمی فهمند

            دیدگاه


              #7
              پاسخ : mmc در بسکام و نحوه نوشتن در text

              1.line خط رو کامل میگیره و تا اخر خط می خونه ولی input هروقت اینتر enter دید پایان وردی اعلام میشه
              2.نیازی نیست با دستور get کار کن هم میتونی بایت بگیری هم کاراکتر و..
              3.با دستور بالا هر چی هی get بفرستی کارکتر واسط پس میفرسته
              علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

              دیدگاه


                #8
                پاسخ : mmc در بسکام و نحوه نوشتن در text

                آقا دستت درد نکنه فقط یه سوال دیگه :

                دستورِ "get" چون اجازه نمیده از آراىه هاى eprom استفاده کنى، فکر نکنم به دردم بخوره ، دستورِ line input هر خط رو که میگیره تو string حتما باید بریزه ؟ اونوقت تکلیف چیه ؟ چه جورى باید مثل اولش کرد ؟

                ممنون از وقتی که میزاری
                G*B*J*T
                انسانها به 10 گروه تقسیم می شوند آنها که باینری می فهمند و آنها که باینری نمی فهمند

                دیدگاه


                  #9
                  پاسخ : mmc در بسکام و نحوه نوشتن در text

                  منظورت رو از واژه eeprom متوجه نمیشم :surprised: مگه بحث mmc نیست؟؟!!

                  اره string رو باید واسه lineinput استفاده کنی

                  کاش دقیق بگی می خوای چیکار کنی تا تکلیف روشن بشه(شاید یه راه توپ تر یکی از دوستان پیشنهاد کردااا)
                  علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                  دیدگاه


                    #10
                    پاسخ : mmc در بسکام و نحوه نوشتن در text



                    سلام دوستِ عزیز !

                    من نگفتم eeprom ، گفتم آرایه eeprom ، چون از atmega ۳۲ استفاده میکنم حافظهِ "sram" کم آوردم بد گفتم بزار نصف آراىه ها رو save کنم تو eeprom که بعدش دستورِ get ارور داد که نمى تونه کدِ هاى داخل text رو توى آرایه اى بنویسى که توى eeprom save کردى.

                    حالا به هر حال ! الان که atmega ۱۲۸ میخوام استفاده کنم.

                    اما این وسط من چى میخوام حالا ؟!!!!!!! :
                    من نرم افزارى نوشتم که تو هر خط فایل تکستی که تولید میکنه کدِ هاى hex ِ مورد نیاز براى آراىه ها رو جا میده مثلا :

                    $hf4
                    $ha9
                    .
                    .
                    .

                    خوب ؟ حالا من میخوام با دستورِ مناسبِ این کار بدونِ دردِ سر همون خط ها رو وارد یه آراىه کنم مثلا وارد a(۱۰۰۰) کنم ، یعنی چى ؟ یعنی a(۱) محتویاته خط ۱ رو میگیره ، a(۲) محتویات خط ۲ رو میگیره و الا آخر، حالا این وسط من تصمیم گرفتم از دستورِ get استفاده کنم ، برنامشم به صورتِ زیر نوشتم :




                    کد:
                    '**********
                    'Read from MMC
                    '**********
                    $include "Config_AVR-DOS.BAS"
                    $include "Config_MMC.bas"
                    $baud = 115200
                    '-------------------------------------------------------------------------------
                    Config Clock = Soft
                    Config Date = Dmy , Separator = /
                    Enable Interrupts
                    Time$ = "00:00:00"
                    Date$ = "25/10/09"
                    '-------------------------------------------------------------------------------
                    Dim Ff As Byte
                    Dim Pos As Long
                    '-------------------------------------------------------------------------------
                    If Drivecheck() <> 0 Then Goto Error
                    If Driveinit() <> 0 Then Goto Error
                    If Initfilesystem(1) <> 0 Then Goto Error
                    '-------------------------------------------------------------------------------
                    Ff = Freefile()
                    Open "main.txt" For Input As #ff
                    Pos = Seek(#ff)
                    
                    
                    For Ncol = 1 To 32
                    Get #ff , Step1(ncol) , Pos
                    Waitus 100
                    Pos = Seek(#ff)
                    Next
                    
                    For Nncol = 1 To 320
                    Get #ff , Step2(nncol) , Pos
                    Waitus 100
                    Next
                    
                    For Nncol = 1 To 128
                    Get #ff , Step3(nncol) , Pos
                    Waitus 100
                    Next
                    
                    For Nncol = 1 To 256
                    Get #ff , Step4(nncol) , Pos
                    Waitus 100
                    Next
                    
                    For Nncol = 1 To 320
                    Get #ff , Step5(nncol) , Pos
                    Waitus 100
                    Next
                    
                    For I = 1 To 11
                    Get #ff , X(i) , Pos
                    Waitus 100
                    Next
                    
                    For I = 1 To 5
                    Get #ff , Code(i) , Pos
                    Waitus 100
                    Next
                    
                    
                    Close #ff
                    '-------------------------------------------------------------------------------
                    Error:
                    Set Portb.1
                    Wait 1000
                    step1 ta 5 moteghayer hastan


                    حالا اگه راه دیگه اى سراغ دارى بگو.
                    ممنون !
                    G*B*J*T
                    انسانها به 10 گروه تقسیم می شوند آنها که باینری می فهمند و آنها که باینری نمی فهمند

                    دیدگاه


                      #11
                      پاسخ : mmc در بسکام و نحوه نوشتن در text

                      میتونی از اول تا اخر فایل رو چک کنی و یه موتور بنویسی که تک تک بایت ها چک بشه اگه
                      کد:
                      &h1a
                      بود یعنی کلید enter زده شده پس از اینجا به بعد یه دیتای دیگس و بین 2 تا اینتر رو به هم بچسبون تا بشه دیتایی که میخوای
                      این حسنش به اینه که دیگه نمی خواد بدونی چند تا دیتا توی اون فایله و حرس بخوری ودر ضمن یه روتینه که همیشه می تونی ازش استفاده کنی

                      این دستورات هم که معرف حضورت هست حتما
                      دستور جداسازی string ها
                      mid
                      ltrim
                      val
                      var
                      و...
                      علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                      دیدگاه

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