اطلاعیه

Collapse
No announcement yet.

مشکل در Mega32 و LCD و SD

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

    مشکل در Mega32 و LCD و SD

    سلام دوستان
    برای من مشکلی پیش اومده که دلیلشو نمیتونم بفهمم

    من با یک مگا 32 و LCD کاراکتری 16 در 2 و یک SD کارت
    با زبان بسکام , یک مدار بستم
    مشکلی که هست :
    LCD در حالت معمولی و با برنامه ای که برای LCD نوشتم
    به خوبی کار میکنه (پس مدار و سیمکشی , مشکلی نداره ) ولی وقتی برنامه ای که برای SD
    هست را نصب میکنم , LCD کار نمیکنه (این برنامه داخل sd یک فال تکست باز میکنه)
    با این که دستورات LCD تو برنامه درسته و پورتها هم درست معرفی کردم
    باز , هر کاری میکنم , هیچ نوشته ای روی صفحه LCD نمایش داده نمیشه
    همین که , بعضی از دستورات مثل : فراخانی کتابخونه و نوشتن و خواندن SD را از برنامه پاک میکنم
    LCD کار میوفته و نوشته ها رو
    نمایش میده
    دلیلش چی میتونه باشه؟
    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

    #2
    پاسخ : مشکل در Mega32 و LCD و SD

    این سورس برنامست


    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 38400

    $swstack = 32
    $hwstack = 64
    $framesize = 64

    '-------------------------------------------------------------------------------
    Config Clock = Soft
    Config Date = Dmy , Separator = .
    Enable Interrupts
    Time$ = "2000"
    Date$ = "16.04.08"
    '-------------------------------------------------------------------------------
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Rs = Portd.5 , E = Portd.4 , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3
    '-------------------------------------------------------------------------------
    Dim B As Byte
    Dim L As Byte
    Dim Ff As Byte
    Dim S As String * 30
    Dim Diskf As Long
    Dim Disks As Long
    '-------------------------------------------------------------------------------
    Cls
    Locate 1 , 1
    Lcd "Initation..."
    Waitms 500
    $include "Config_AVR-DOS.BAS"
    $include "Config_MMC.bas" 'include mmc

    F$external Waitms
    Locate 2 , 1
    Lcd Gbdriveerror
    End
    End If

    'include avr-dos

    B = Initfilesystem(1) 'init file system
    If B <> 0 Then Lcd "Error MMC"
    '-------------------------------------------------------------------------------
    '------------------------ PROGRAM START ------------------------------
    '-------------------------------------------------------------------------------
    Locate 2 , 1
    Lcd "Now Create file"



    Ff = Freefile()
    Open "test.txt" For Output As #ff 'create file in MMC

    S = Str(diskf)
    Print #ff , S ; " Byte Disk Free Space"
    S = Str(disks)
    Print #ff , S ; " Byte Disk Size"

    S = "Hello Smile"

    For L = 0 To 10
    Print #ff , S
    Next L

    Close #ff

    Cls
    Lcd "File Created"
    Wait 2
    Cls
    Lcd "Free" ; Diskf ; "Byte"
    Locate 2 , 1
    Lcd "Size" ; Disks ; "Byte"

    Do
    Loop

    End
    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

    دیدگاه


      #3
      پاسخ : مشکل در Mega32 و LCD و SD

      دستوراتی از قبیل:

      $baud = 38400
      $swstack = 32
      $hwstack = 64
      $framesize = 64

      $include "Config_AVR-DOS.BAS"
      $include "Config_MMC.bas"

      Diskf = Diskfree()
      Disks = Disksize()


      Ff = Freefile()
      Open "test.txt" For Output As #ff 'create file in MMC

      S = Str(diskf)

      را که پاک میکنم LCD نوشته را نمایش میده
      و میشه گفت به صورت خلاصه:
      هر دستوری را که مربوط به MMC /SD هست را پاک میکنم و بخش SD را از کار میندازم
      اون موقع مشکل حل میشه

      پ.ن: من پرت D را برای LCD معرفی کردم
      ممکنه این میکرو با پورت D و اتصال اون به LCD مشکل داشته باشه؟

      آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
      مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
      _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

      دیدگاه


        #4
        پاسخ : مشکل در Mega32 و LCD و SD

        میشه گفت
        وقتی بیخیال SD و دستوراتش میشم LCD به کا میوفته
        انگار LCD با SD مشکل داره
        برنامه دیگری را که مربوط به SD بود
        استفاده کردم و جواب نداد و باز همون مشکل بود


        سوال دیگه ای هم داشتم

        تنظیم کلاک و یا همان فرکانس نرم افزاری با سخت افزاری چه فرقی با هم دارند؟
        داخل برنامه وقتی از دستور زیر استفاده میکنیم و فرکانس کاری میکرو را تنظیم میکنیم
        $crystal = 16000000
        میکرو یک واکنش را در داخل مدار نشون میده
        و وقتی فرکانس کاری را با فیوزبیتها تنظیم میکنیم (تنظیم بیتهای کلاک)
        یک واکنش دیگه از خودش نشون میده
        این دو با هم فرق دارند؟
        من تابه حال فکر میکردم که با تنظیم کیریستال در داخل برنامه
        فیوز بیتهای کلاک هم خود به خود تنظیم میشن

        مثلا وقتی فیوز بیت کلاک مگا 32 یک مگا هرتز تنظیم شده و داخل برنامه ما کریستال 8 مگ را زدیم
        برنامه سرعت کاریش با زمانی که فیوزبیت 8 هست و معرفی کریستال داخلی 8
        است خیلی فرق داره...
        آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
        مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
        _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

        دیدگاه


          #5
          پاسخ : مشکل در Mega32 و LCD و SD

          دوستان لطفا کمک کنن
          آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
          مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
          _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

          دیدگاه


            #6
            پاسخ : مشکل در Mega32 و LCD و SD

            من بسکام بلد نیستم اما این چیزی که شما میگید من رو یاد یک مشکلی انداخت که خودم داشتم
            در برنامه شما "ال سی دی با اس دی کارت مشکل نداره!!! " چیزی که باعث میشه lcd کار نکنه اینه که برنامه شما در قسمت راه اندازی sd گیر می کنه . من خودم موقع راه اندازی eeprom و چیزهای دیگه که ارتباط شون از این نوعه ، همچین مشکلی داشتم چون میکرو به دلیل اینکه ارتباط سخت افزاری با اون قطعه درست برقرار نیست منتظر میمونه که کلاک یا جوابی از اون قطعه بیاد ، دیگه برنامه رو اجرا نمیکنه .
            احتمالا مشکل شما هم همینه
            Don't hesitate to ask any question ..

            دیدگاه


              #7
              پاسخ : مشکل در Mega32 و LCD و SD

              نوشته اصلی توسط syavash_kasraeee
              من بسکام بلد نیستم اما این چیزی که شما میگید من رو یاد یک مشکلی انداخت که خودم داشتم
              در برنامه شما "ال سی دی با اس دی کارت مشکل نداره!!! " چیزی که باعث میشه lcd کار نکنه اینه که برنامه شما در قسمت راه اندازی sd گیر می کنه . من خودم موقع راه اندازی eeprom و چیزهای دیگه که ارتباط شون از این نوعه ، همچین مشکلی داشتم چون میکرو به دلیل اینکه ارتباط سخت افزاری با اون قطعه درست برقرار نیست منتظر میمونه که کلاک یا جوابی از اون قطعه بیاد ، دیگه برنامه رو اجرا نمیکنه .
              احتمالا مشکل شما هم همینه
              سلام دوست عزیز
              ممنون برای پاسختون :redface:...

              فکر کنم برنامه گیری نداشته باشه
              برنامه کارشو میکنه
              مثلا در ورژن دیگه برنامه
              هر 10 دقیقه , دما را داخل SD ذخیره میکنه
              ولی نمیدونم چرا LCD هیچی نشون نمیده
              وقتی برنامه مشابه (که قسمت برنامه نویسی برای SD را ندارد)
              به کار میگیرم , اون وقت LCD شروع به نمایش اطلاعات میکنه
              ممکنه میکرو ضعیف باشه و رم کم بیاره؟
              که اینم شک دارم
              آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
              مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
              _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

              دیدگاه


                #8
                پاسخ : مشکل در Mega32 و LCD و SD

                سلام
                دوست عزیز .
                اول:برای کریستال باید توضیح بدم که وقتی کریستال رو تعریف می کنی حتما باید فیوز بیت هاش رو هم درست کنی که تو بسکام کار بسیار راحتی هست .(اکه نتونستی بگو)

                دوم : چون داری از ارتباط سریال استفاده می کنی بهت بگم که بهتره از کریستال خارجی 11059200 استفاده کنی که برای بعضی از نرخهای ارسال(baud rate) خطای صفر داره و به راحتی هم توی بازار هست .
                سوم : مشکلت با استفاده از دستورات Sd و lcd . خوب برای این مشکل من یه پیشنهاد دارم اونم استفاده از uart نرم افزاری .
                شما وقتی از دستوره $baud استفاده می کنی بسکام از سریال سخت افزاری استفاده می کنه که این مشکلاتی رو به وجود میاره (من قبلا شبیه همین مشکل رو داشتم
                ولی فراموش کردم دلیلش چی بود )
                خوب حالا شما از این دستورات استفاده کن به نظر من حتما جواب می گیری .
                $regfile "M32DEF.DAT"
                $crystal = 11059200
                Baud #1 , 19200
                $swstack = 80
                $hwstack = 100
                $framesize = 160
                Config Date = Ymd , Separator = /
                Config Clock = Soft
                $include "CONFIG_AVR-DOS.Bas"
                $include "config_mmc.bas"
                If Drivecheck() <> 0 Then
                End If
                If Driveinit() <> 0 Then
                Check = 0
                Else
                Check = 1
                End If
                If Initfilesystem(1) <> 0 Then
                End If

                دیدگاه


                  #9
                  پاسخ : مشکل در Mega32 و LCD و SD

                  دستورات drivecheck و driveinit الزامی هست .
                  در ضمن این رو هم ببین که بسیار عالی تههیه شده .
                  http://www.wormfood.net/avrbaudcalc.php

                  دیدگاه


                    #10
                    پاسخ : مشکل در Mega32 و LCD و SD

                    نوشته اصلی توسط ahmad1000
                    سلام
                    دوست عزیز .
                    ..................
                    خوب حالا شما از این دستورات استفاده کن به نظر من حتما جواب می گیری .
                    $regfile "M32DEF.DAT"
                    $crystal = 11059200
                    Baud #1 , 19200
                    $swstack = 80
                    $hwstack = 100
                    $framesize = 160
                    Config Date = Ymd , Separator = /
                    Config Clock = Soft
                    $include "CONFIG_AVR-DOS.Bas"
                    $include "config_mmc.bas"
                    If Drivecheck() <> 0 Then
                    End If
                    If Driveinit() <> 0 Then
                    Check = 0
                    Else
                    Check = 1
                    End If
                    If Initfilesystem(1) <> 0 Then
                    End If
                    سلام دوست عزیز
                    بینهایت ممنون :mrgreen: :wow: :applause:
                    فقط یک سوال برام پیش اومد
                    دقیقا شما چی کار کردید
                    با چند خط دستور که قبلا در برنامم بود
                    و تغییر آنها , LCD درست شد
                    میتونید کمی توضیح دهید , دقیقا چی کار کردید؟
                    ممنون میشم این کارو بکنید
                    بازم ممنون
                    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                    دیدگاه


                      #11
                      پاسخ : مشکل در Mega32 و LCD و SD

                      نوشته اصلی توسط ahmad1000
                      .
                      $regfile "M32DEF.DAT"
                      $crystal = 11059200
                      Baud #1 , 19200
                      $swstack = 80
                      $hwstack = 100
                      $framesize = 160
                      Config Date = Ymd , Separator = /
                      Config Clock = Soft
                      $include "CONFIG_AVR-DOS.Bas"
                      $include "config_mmc.bas"
                      If Drivecheck() <> 0 Then
                      End If
                      If Driveinit() <> 0 Then
                      Check = 0
                      Else
                      Check = 1
                      End If
                      If Initfilesystem(1) <> 0 Then
                      End If
                      یک سوال دیگری هم داشتم:
                      این سه خط در برنامه چه کاری انجام میدهد؟

                      Check = 0
                      Else
                      Check = 1
                      آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                      مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                      _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                      دیدگاه


                        #12
                        پاسخ : مشکل در Mega32 و LCD و SD

                        سلام
                        همون بالا توضیح دادم . من فقط از uart نرم افزاری استفاده کردم .

                        لون سه خط هم چیزی نیست اهمیت نده . انا برای برنامه خودم بوده .

                        دیدگاه

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