اطلاعیه

Collapse
No announcement yet.

پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

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

    پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

    سلام دوستان
    من یک مگا۳۲۸پی خریدم که ظاهراً فرکانس داخلی یا هشت مگاهرتز و یا یک میتونه باشه،اونم به این صورت که فرکانس هشت مگا بصورت دیفالت توسط فیوز بیت div8 ،روی یک مگا تنظیمش شده،من می*خواستم که فرکانس روی هشت باشه بنابراین فیوزبیت div8رو غیرفعال کردم،که دیگه میکرو پروگرام نشد،مشکل چیه به نظرتون؟

    Sent from my Lenovo A6020a46 using Tapatalk

    #2
    پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

    وقت بخیر
    اگر فیوز بیت کلاک رو اتفاقی روی کریستال خارجی تنظیم کنید !! باید یک کریستال روی میکرو بگذارید تا بتونید ادامه پروگرام کنید .

    دیدگاه


      #3
      پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

      فیوزبیت کلاک رو تغییر ندادم ،فقط div8دو تا مگاها پریده فعلا
      از طرفی میکرو رو با کریستال های ۴و۸ امتحان کردم،بازم نشد


      Sent from my Lenovo A6020a46 using Tapatalk

      دیدگاه


        #4
        پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

        شما یک فرکانس 1 مگا هرتز به به پایه XTAL1 اعمال کن سپس پرگرامر می تونه میکرو رو شناسایی کنه(در صورتی فیوز بیت اشتباه تنظیم شده با شه)

        دیدگاه


          #5
          پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

          نوشته اصلی توسط gmaissam نمایش پست ها
          سلام دوستان
          من یک مگا۳۲۸پی خریدم که ظاهراً فرکانس داخلی یا هشت مگاهرتز و یا یک میتونه باشه،اونم به این صورت که فرکانس هشت مگا بصورت دیفالت توسط فیوز بیت div8 ،روی یک مگا تنظیمش شده،من می*خواستم که فرکانس روی هشت باشه بنابراین فیوزبیت div8رو غیرفعال کردم،که دیگه میکرو پروگرام نشد،مشکل چیه به نظرتون؟

          Sent from my Lenovo A6020a46 using Tapatalk
          سلام، با چه پروگرامر و نرم*افزاری کار کردید؟

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

          دیدگاه


            #6
            پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

            پروگرامر avr usb programmer
            نرم افزار بسکام
            البته پروگرامر nus112نواوران الکترونیک هم دارم ولی کار نمی کنه و خیلی اذیتم کرده

            Sent from my Lenovo A6020a46 using Tapatalk

            دیدگاه


              #7
              پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

              نوشته اصلی توسط gmaissam نمایش پست ها
              پروگرامر avr usb programmer
              نرم افزار بسکام
              البته پروگرامر nus112نواوران الکترونیک هم دارم ولی کار نمی کنه و خیلی اذیتم کرده

              Sent from my Lenovo A6020a46 using Tapatalk
              فقط خود فیوزبیت را پروگرام کردید یا اینکه برنامه را هم بصورت همزمان پروگرام کردید؟

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

              دیدگاه


                #8
                پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                قبلش با فرکانس ۱پروگرام کردم،سری دوم فقط فیوزبیت رو تغییر دادم

                Sent from my Lenovo A6020a46 using Tapatalk

                دیدگاه


                  #9
                  پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                  در برنامه پین هایی از میکرو خروجی تعریف شده؟
                  در صورت امکان سورس برنامه را ارسال کنید.

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

                  دیدگاه


                    #10
                    پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                    تا اونجایی که یادم میاد پورت دی ورودی خروجی داشت و پورت های ارتباطی مثل ،mosi miso

                    Sent from my Lenovo A6020a46 using Tapatalk

                    دیدگاه


                      #11
                      پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                      متاسفانه بیرون هستم و دسترسی ندارم ،اواخر امشب میفزستم

                      Sent from my Lenovo A6020a46 using Tapatalk

                      دیدگاه


                        #12
                        پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                        دوست عزیز من قبلا با بسکام کار کردم اگه از طریق بسکام پراگرام می کنی پیشنهاد من AVR Studio هستش من خودم هر وقت میکرو قفل میشه با این نرم افزار بازش می کنم (پروگرامرم STK500 هستش) در ضمن فرکانس پروگرام رو کم کن بیشتر موقع ها وقتی میکرو قفل میشد با کم کرد ن فرکانس مشکل حل میشد.

                        دیدگاه


                          #13
                          پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                          نوشته اصلی توسط MM320 نمایش پست ها
                          دوست عزیز من قبلا با بسکام کار کردم اگه از طریق بسکام پراگرام می کنی پیشنهاد من AVR Studio هستش من خودم هر وقت میکرو قفل میشه با این نرم افزار بازش می کنم (پروگرامرم STK500 هستش) در ضمن فرکانس پروگرام رو کم کن بیشتر موقع ها وقتی میکرو قفل میشد با کم کرد ن فرکانس مشکل حل میشد.
                          طبق توضیحات ایشان فرکانس میکرو افزایش داده شده. پس قاعدتاً نباید مشکلی از بابت سرعت پروگرام باشد. بحث پروگرامر stk500 در صورتیکه منظور شما پروگرامر های کلون شده داخلی است و نه مدل اصلی شرکت اتمل، بعید می*دانم که کمکی به برطرف شدن موضوع کند. چون پروگرامر ایشان و STK500 های داخلی هر دو از روش یکسان spi استفاده می*کنند.

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

                          دیدگاه


                            #14
                            پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                            نوشته اصلی توسط lachini نمایش پست ها
                            طبق توضیحات ایشان فرکانس میکرو افزایش داده شده. پس قاعدتاً نباید مشکلی از بابت سرعت پروگرام باشد. بحث پروگرامر stk500 در صورتیکه منظور شما پروگرامر های کلون شده داخلی است و نه مدل اصلی شرکت اتمل، بعید می*دانم که کمکی به برطرف شدن موضوع کند. چون پروگرامر ایشان و STK500 های داخلی هر دو از روش یکسان spi استفاده می*کنند.
                            با atmel studio و stk500. هم نشد

                            Sent from my Lenovo A6020a46 using Tapatalk

                            دلیل: ادغام دو پست برای جلوگیری از اسپم

                            نوشته اصلی توسط lachini نمایش پست ها
                            در برنامه پین هایی از میکرو خروجی تعریف شده؟
                            در صورت امکان سورس برنامه را ارسال کنید.
                            کد:
                            regfile = "m328pdef.dat"
                            $crystal = 8000000
                            $hwstack = 100
                            $swstack = 100
                            $framesize = 100
                            
                            Dim Main As Byte                                            ' minimum for this library. Increase for your application needs!
                            Const Ds1307w = &HD0
                            Const Ds1307r = &HD1
                            
                            Config Scl = Portc.5
                            Config Sda = Portc.4
                            Const Xeeread = 161
                            Const Xeewrite = 160
                            Config Portd.0 = Output
                            Config Pind.2 = Input
                            Config Pind.3 = Input
                            Config Pind.1 = Input
                            Config Debounce = 35
                            Hsensor Alias Portd.0
                            Dim Yearstr As String * 5
                            Dim Monthstr As String * 2
                            Dim Daystr As String * 2
                            Dim W As Word
                            Dim Cs As Byte
                            Dim Df As Byte
                            
                            Dim Volt As Single
                            Dim Sendatastr As String * 5
                            
                            Dim Exitloop As Bit
                            Dim Sex As Byte
                            Dim Xx As Byte
                            Dim Yy As Byte
                            
                            Dim I As Word
                            Dim Xi As Word
                            
                            
                            Dim Sexc As Byte
                            Dim Dataout As Byte
                            Exitloop = 0
                            
                            Dim Ii As Word
                            Dim Exitwhile As Byte
                            Dim Parameter As String * 5
                            Dim _secstr As String * 2
                            Dim _minstr As String * 2
                            Dim _hourstr As String * 2
                            Dim Hbyte As Byte
                            Dim Lbyte As Byte
                            Dim Flag As Byte
                            Dim Tabdilstr As String * 4
                            Dim Strstring As String * 14                                'Just used for this demo
                            Dim Osf As Byte
                            'Define I/O and name them
                            Config Portd.7 = Output
                            D3310dc Alias Portd.7
                            
                            Config Portb.0 = Output
                            D3310ce Alias Portb.0
                            
                            Config Portb.7 = Output
                            D3310re Alias Portb.7
                            
                            'Configure SPI in soft mode
                            Config Spi = Soft , Din = Portb.1 , Dout = Portd.6 , Ss = None , Clock = Portd.5
                            Config Adc = Single , Prescaler = Auto , Reference = Avcc
                            Stop Adc
                            'Initialise Spi
                            Spiinit
                            Declare Sub Pwrite
                            Declare Sub Bmpprint(byval First As Word , Byval Finish As Word )
                            Declare Sub Soil.mois
                            Declare Sub D3310standby
                            Declare Sub D3310bmpout(byval Pic As Byte , Byval Bmpx As Word , Byval Bmpy As Word)
                            Declare Sub D3310reset
                            Declare Sub D3310init
                            Declare Sub D3310clear
                            Declare Sub D3310invert
                            Declare Sub D3310uninvert
                            Declare Sub D3310commandout(byval D3310value As Byte)
                            Declare Sub D3310dataout(byval D3310value As Byte)
                            Declare Sub D3310print(byval D3310string As String )
                            Declare Sub D3310position(byval D3310x As Byte , Byval D3310y As Byte)
                            Declare Sub Ds3231send
                            Declare Sub Ds3231
                            'Define a variable for the quotation mark "
                            Dim D3310quotation As String * 1
                            D3310quotation = Chr(34)
                            
                            'Initialise the display
                            Dim Datain As Byte
                            Call D3310reset
                            Call D3310init
                            Call D3310clear
                            Main = 50
                            While Main = 100
                               For Ii = 0 To 59
                             '  Dataout = Lookup(ii , Zero)
                                  Xi = 4032 + Ii
                            
                                  Hbyte = High(xi)
                            
                                  Lbyte = Low(xi)
                            
                                  Gosub Wat24c64
                               Next Ii
                               Main = 50
                            Wend
                            '0ta 503  loading
                            '504 ta 1007 main page
                            ' 1008 ta 1511 setdate
                             '1512ta 2015 SettimE
                              '2016 TA 2519 TIME CHK
                             ' 2520 ta 3023 setdateyear
                               '3024 ta 3527 setdatemonyh
                                '3528 ta 4031 setdate day
                            ' I2cstart
                            'I2cwbyte Ds1307w                                            ' send address
                             ' I2cwbyte &H0B
                                                                      ' start address in 1307
                            
                              'I2cwbyte &H80                                             ' MINUTES
                            
                              'I2cwbyte &H80
                              'I2cwbyte &H80
                            
                            
                              'I2cstop
                               'I2cstart
                            'I2cwbyte Ds1307w                                            ' send address
                             'I2cwbyte &H0E
                                                                      ' start address in 1307
                            
                              'I2cwbyte &H06                                             ' MINUTES
                            
                            Exitloop = 0
                            
                              'I2cstop
                            Main = 50
                            
                            Do
                               While Main = 50
                            
                            
                                  Call D3310position(0 , 0 )
                            
                            
                                  For Ii = 0 To 503
                            
                                     Hbyte = High(ii)
                            
                                     Lbyte = Low(ii)
                            
                            
                                     Gosub Rat24c64
                            
                                                                        'Go to data mode
                            
                                                                     'Read and print the 504 pixel columns
                                    ' Datain = Lookup(ii , L1)
                                     Call D3310dataout(datain)
                                  Next
                            
                            'Call D3310clear
                            ' Call D3310position(0 , 0)
                            
                             'Call D3310bmpout(2 , 0 , 503)
                             '
                                  Call D3310position(5 , 4)
                            
                            
                                  Call D3310bmpout(1 , 0 , 73)
                            
                                  Call D3310position(5 , 4)
                                  Call D3310bmpout(3 , 0 , 73)
                            'Call D3310clear
                            'Call D3310bmpout(4 , 0 , 503)
                            ' Call Ds3231
                            ' Call D3310position(50 , 0)
                            '   Call D3310print(_hourstr)
                            '   Call D3310print( ":")
                            '   Call D3310print(_minstr)
                               ' Main = 1
                            
                                  Call D3310position(0 , 0 )
                            
                            
                                  For Ii = 504 To 1007
                            
                                     Hbyte = High(ii)
                            
                                     Lbyte = Low(ii)
                            
                            
                                     Gosub Rat24c64
                            
                                                                        'Go to data mode
                            
                                                                     'Read and print the 504 pixel columns
                                    ' Datain = Lookup(ii , L1)
                                     Call D3310dataout(datain)
                                  Next
                                  Main = 1
                               Wend
                            
                               While Main = 1
                            
                                  Call Ds3231
                                  Call D3310position(51 , 0)
                                  Call D3310print(_hourstr + ":" + _minstr)
                                  Call D3310position(50 , 3)
                                  Call Soil.mois
                                  Call D3310print(tabdilstr )
                            
                                  Do
                                     Debounce Pind.2 , 1 , Getmenu , Sub
                                  Loop Until Exitloop = 1
                               Wend
                            
                            
                            
                               While Main = 2
                            
                                  Call D3310position(0 , 0 )
                                  Call Bmpprint(1008 , 1511)
                            
                                  Do
                                     Debounce Pind.2 , 1 , Entry , Sub
                                     Debounce Pind.3 , 1 , Down , Sub
                                  Loop Until Exitloop = 1
                                  Exitloop = 0
                               Wend
                            
                               While Main = 3
                            
                                  Call D3310position(0 , 0 )
                                  Call Bmpprint(1512 , 2015)
                                  Do
                                     Debounce Pind.1 , 1 , Up , Sub
                                     Debounce Pind.2 , 1 , Entry , Sub
                                     Debounce Pind.3 , 1 , Down , Sub
                                  Loop Until Exitloop = 1
                                  Exitloop = 0
                               Wend
                            
                               While Main = 4
                            
                                  Call D3310position(0 , 0 )
                                  Call Bmpprint(2016 , 2519)
                                  Do
                                     Debounce Pind.1 , 1 , Up , Sub
                                     Debounce Pind.2 , 1 , Entry , Sub
                                  Loop Until Exitloop = 1
                                  Exitloop = 0
                               Wend
                            
                            
                               While Main = 5                                           'saal
                                  Call D3310position(0 , 0 )
                                  Call Bmpprint(2520 , 3023)
                                  Do
                                     Call Ds3231
                                     For I = 1 To 5
                                        Call Pwrite
                                        Call D3310position(xx , Yy)
                                        Call D3310print(parameter)
                            
                                     Next
                                     Do
                                        Debounce Pind.1 , 1 , Inncr , Sub
                            
                                        Debounce Pind.3 , 1 , Deecr , Sub
                                        Debounce Pind.4 , 1 , Riight , Sub
                            
                                     Loop Until Exitloop = 1
                                     Exitloop = 0
                                     Call Ds3231send
                                  Loop Until Exitwhile = 1
                                  Exitwhile = 0
                               Wend
                            
                               While Main = 6                                           'mah
                                  Call D3310position(0 , 0 )
                                  Call Bmpprint(3024 , 3527)
                            
                                  Do
                                     Call Ds3231
                                     For I = 1 To 5
                                         Call Pwrite
                                        Call D3310position(xx , Yy)
                                        Call D3310print(parameter)
                            
                                     Next
                            
                                     Do
                                        Debounce Pind.1 , 1 , Inncr , Sub
                            
                                        Debounce Pind.3 , 1 , Deecr , Sub
                                        Debounce Pind.4 , 1 , Riight , Sub
                            
                                     Loop Until Exitloop = 1
                                     Exitloop = 0
                                     Call Ds3231send
                                  Loop Until Exitwhile = 1
                                  Exitwhile = 0
                               Wend
                             While Main = 7                                             'day
                                  Call D3310position(0 , 0 )
                                  Call Bmpprint(3528 , 4031)
                                  Do
                                     Call Ds3231
                                     For I = 1 To 5
                                     Call Pwrite
                            
                                        Call D3310position(xx , Yy)
                                        Call D3310print(parameter)
                            
                                     Next
                                     Do
                                        Debounce Pind.1 , 1 , Inncr , Sub
                            
                                        Debounce Pind.3 , 1 , Deecr , Sub
                                        Debounce Pind.4 , 1 , Riight , Sub
                            
                                     Loop Until Exitloop = 1
                                     Exitloop = 0
                                     Call Ds3231send
                                  Loop Until Exitwhile = 1
                                  Exitwhile = 0
                               Wend
                            Loop
                            '===============================================================================
                            'Library for the Nokia 3310 display
                            
                            'This is the second of two .bas files that must be used together.
                            'Please see 3310init.bas for instructions.
                            
                            '===============================================================================
                            Sub Pwrite
                            Select Case I
                                           Case 1 : Xx = 6 : Yy = 1 : Parameter = Yearstr
                                           Case 2 : Xx = 43 : Yy = 1 : Parameter = Monthstr
                                           Case 3 : Xx = 64 : Yy = 1 : Parameter = Daystr
                                           Case 4 : Xx = 24 : Yy = 3 : Parameter = _hourstr
                                           Case 5 : Xx = 49 : Yy = 3 : Parameter = _minstr
                                        End Select
                            End Sub
                            Sub Bmpprint(byval First As Word , Byval Finish As Word)
                               For Ii = First To Finish
                                     Hbyte = High(ii)
                                     Lbyte = Low(ii)
                                     Gosub Rat24c64
                                     Call D3310dataout(datain)
                                  Next
                            
                            End Sub
                            Sub D3310print(byval D3310string As String * 14)
                                                                     Local D3310length As Byte       'Holds the length of D3310string
                               Local D3310character As String * 1                       'Holds each consecutive character in turn during display output
                               Local D3310stringloop As Byte                            'Loop variable for the string
                               Local D3310columnloop As Byte                            'Loop variable for the columns
                               Local D3310column As Byte                                'Display column output
                            
                               D3310length = Len(d3310string)                           'Establish the number of characters
                            
                               For D3310stringloop = 1 To D3310length                   'Loop through the string
                            
                                  D3310character = Mid(d3310string , D3310stringloop , 1)       'Get the current character
                            
                                  Select Case D3310character                            'Position the pointer to the correct character in the Eeprom and read the first byte
                                     Case "0" : Call Bmpprint(4032 , 4036)
                                     Case "1" : Call Bmpprint(4037 , 4041)
                                     Case "2" : Call Bmpprint(4042 , 4046)
                                     Case "3" : Call Bmpprint(4047 , 4051)
                                     Case "4" : Call Bmpprint(4052 , 4056)
                                     Case "5" : Call Bmpprint(4057 , 4061)
                                     Case "6" : Call Bmpprint(4062 , 4066)
                                     Case "7" : Call Bmpprint(4067 , 4071)
                                     Case "8" : Call Bmpprint(4072 , 4076)
                                     Case "9" : Call Bmpprint(4077 , 4081)
                                     Case ":" : Call Bmpprint(4082 , 4086)
                                     Case "%" : Call Bmpprint(4087 , 4091)
                            
                                  End Select
                                    D3310column = 0 : Call D3310dataout(d3310column)
                                  Next
                            End Sub
                            
                               'Zero:
                               'Data &H3E , &H51 , &H49 , &H45 , &H3E
                            
                               'Data &H00 , &H42 , &H7F , &H40 , &H00
                            
                               'Data &H42 , &H61 , &H51 , &H49 , &H46
                            
                               'Data &H22 , &H41 , &H49 , &H49 , &H36
                            
                               'Data &H18 , &H14 , &H12 , &H7F , &H10
                            
                              ' Data &H27 , &H45 , &H45 , &H45 , &H39
                            
                               'Data &H3E , &H49 , &H49 , &H49 , &H32
                            
                               'Data &H61 , &H11 , &H09 , &H05 , &H03
                               'Data &H36 , &H49 , &H49 , &H49 , &H36
                               'Data &H26 , &H49 , &H49 , &H49 , &H3E
                               'Data &H00 , &H36 , &H36 , &H00 , &H00
                               'Data &H23 , &H13 , &H08 , &H64 , &H62
                            
                            Sub Soil.mois
                               Local Sendata As Word
                               Local Tabdil As Single
                               Local Tabdilint As Integer
                               Hsensor = 1
                               Waitms 50
                               Start Adc
                               Sendata = Getadc(3)
                               Tabdil = Sendata - 250
                               Tabdil = Tabdil * .1379310
                               Tabdil = 100 - Tabdil
                            
                            
                               Stop Adc
                            
                               Hsensor = 0
                               Tabdilint = Int(tabdil)
                               Tabdilstr = Str(tabdilint)
                               Tabdilstr = Tabdilstr + "%"
                            
                            End Sub
                            
                            Sub Ds3231
                               Local _sec As Byte
                               Local _min As Byte
                               Local _hour As Byte
                               Local Rh As Byte
                               Local Year As Word
                               Local Month As Byte
                               Local Day As Byte
                               Local Lenght As Byte
                            
                               I2cstart
                               I2cwbyte Ds1307w                                         ' send address
                               I2cwbyte 0                                               ' start address in 1307
                               I2cstart                                                 ' Generate start code
                               I2cwbyte Ds1307r                                         ' send address
                               I2crbyte _sec , Ack
                               I2crbyte _min , Ack                                      ' MINUTES
                               I2crbyte _hour , Ack
                               I2crbyte Rh , Ack
                               I2crbyte Day , Ack
                               I2crbyte Month , Ack                                     ' MINUTES
                               I2crbyte Year , Nack
                               I2cstop
                            
                            
                               _min = Makedec(_min)
                               _hour = Makedec(_hour)
                               Year = Makedec(year)
                               Month = Makedec(month)
                               Day = Makedec(day)
                               Year = 2000 + Year
                            
                            
                               _minstr = Str(_min)
                               _hourstr = Str(_hour)
                               Yearstr = Str(year)
                            
                               Monthstr = Str(month)
                               Daystr = Str(day)
                               Lenght = Len(_minstr)
                               If Lenght = 1 Then : _minstr = "0" + _minstr : End If
                               Lenght = Len(_hourstr)
                               If Lenght = 1 Then : _hourstr = "0" + _hourstr : End If
                            
                               Lenght = Len(monthstr)
                               If Lenght = 1 Then : Monthstr = "0" + Monthstr : End If
                               Lenght = Len(daystr)
                               If Lenght = 1 Then : Daystr = "0" + Daystr : End If
                            End Sub
                            
                            
                            Sub Ds3231send
                               Local _sec As Byte
                               Local _min As Byte
                               Local _hour As Byte
                               Local Year As Word
                               Local Month As Byte
                               Local Day As Byte
                               Local Lenght As Byte
                               Local Rh As Byte
                               I2cstart
                               I2cwbyte Ds1307w                                         ' send address
                               I2cwbyte 0                                               ' start address in 1307
                               I2cstart                                                 ' Generate start code
                               I2cwbyte Ds1307r                                         ' send address
                               I2crbyte _sec , Ack
                               I2crbyte _min , Ack                                      ' MINUTES
                               I2crbyte _hour , Ack
                               I2crbyte Rh , Ack
                               I2crbyte Day , Ack
                               I2crbyte Month , Ack                                     ' MINUTES
                               I2crbyte Year , Nack
                               I2cstop
                            
                            
                               _min = Makedec(_min)
                               _hour = Makedec(_hour)
                               Year = Makedec(year)
                               Month = Makedec(month)
                               Day = Makedec(day)
                            
                               Select Case Flag
                                  Case 1 : Incr Year
                                  Case 2 : Incr Month : If Month > 12 Then : Month = 12 : End If
                                  Case 11 : Decr Year
                                  Case 22 : Decr Month : If Month < 1 Then : Month = 1 : End If
                                  Case 3 : Incr Day : If Day > 31 Then : Day = 31 : End If
                                  Case 33 : Decr Day : If Day < 1 Then : Day = 1 : End If
                                  Case 4 : Incr _hour
                                  Case 5 : Incr _min
                               End Select
                               Flag = 0
                               _min = Makebcd(_min)
                               _hour = Makebcd(_hour)
                               Year = Makebcd(year)
                               Month = Makebcd(month)
                               Day = Makebcd(day)
                               I2cstart
                               I2cwbyte Ds1307w                                         ' send address
                               I2cwbyte 1
                                                                      ' start address in 1307
                            
                               I2cwbyte _min                                            ' MINUTES
                            
                               I2cwbyte _hour
                               I2cwbyte Rh
                               I2cwbyte Day
                               I2cwbyte Month
                               I2cwbyte Year
                               I2cstop
                            
                            
                            End Sub
                            
                            Sub D3310bmpout(byval Pic As Byte , Byval Bmpx As Word , Byval Bmpy As Word)       'You must Restore D3310bmp* before you call D3310bmpout
                               I = 0
                               Local D3310pixelloop As Word                             'Loop variable for the pixels
                               Local D3310column As Byte
                               Select Case Pic
                                  Case 1 : Restore Nload
                               'Case 2 : Restore Home1
                                  Case 3 : D3310column = &H1F
                               'Case 4 : Restore Main1
                               End Select
                               D3310ce = 0                                              'Display data input enable
                               D3310dc = 0                                              'Command mode
                               D3310commandout &H20                                     'Normal command mode, horizontal addressing
                                                                 'Set RAM X address to 0
                                                                   'Set RAM Y address to 0
                               D3310dc = 1                                              'Go to data mode
                            
                               For D3310pixelloop = Bmpx To Bmpy
                            
                            
                                  Dataout = D3310pixelloop Mod 74
                                  If Dataout = 0 And Pic = 1 Then : Call D3310position(5 , 4) : End If       'Read and print the 504 pixel columns
                                  If Pic = 1 Or Pic = 2 Then : Read D3310column : End If
                                  If Pic = 3 Then : Waitms 35 : End If
                                  If Pic = 4 Then : Read D3310column : End If
                            
                                  Call D3310dataout(d3310column)
                            
                               Next D3310pixelloop
                               D3310ce = 1                                              'Display data input disable
                            
                            End Sub
                            
                            Sub D3310reset
                               D3310re = 0
                               Waitus 250
                               D3310re = 1
                            End Sub
                            
                            Sub D3310standby
                               D3310ce = 0                                              'Display data input enable
                               D3310dc = 0                                              'Command mode
                               D3310commandout &H21                                     'Extended command mode, horizontal addressing
                               D3310commandout &HC8                                     'Middle contrast
                               D3310commandout &H06                                     'Temperature setting
                               D3310commandout &H11                                     'Bias 1:48
                               D3310commandout &H25                                     'Normal command mode, horizontal addressing
                               D3310commandout &H0C                                     'Uninverted Screen
                               D3310ce = 1                                              'Display data input disable
                            End Sub
                            
                            
                            Sub D3310init
                               D3310ce = 0                                              'Display data input enable
                               D3310dc = 0                                              'Command mode
                               D3310commandout &H21                                     'Extended command mode, horizontal addressing
                               D3310commandout &HC8                                     'Middle contrast
                               D3310commandout &H06                                     'Temperature setting
                               D3310commandout &H11                                     'Bias 1:48
                               D3310commandout &H22                                     'Normal command mode, horizontal addressing
                               D3310commandout &H0C                                     'Uninverted Screen
                               D3310ce = 1                                              'Display data input disable
                            End Sub
                            
                            Sub D3310clear
                            
                               Local D3310pixelloop As Word                             'Loop variable for the pixels
                            
                               D3310ce = 0                                              'Display data input enable
                               D3310dc = 0                                              'Command mode
                               D3310commandout &H20                                     'Normal command mode, horizontal addressing
                               D3310commandout &H80                                     'Set RAM X address to 0
                               D3310commandout &H40                                     'Set RAM Y address to 0
                               D3310dc = 1                                              'Go to data mode
                               For D3310pixelloop = 0 To 503                            'Send 504 blank pixels
                                  D3310dataout &H00
                               Next D3310pixelloop
                               D3310ce = 1                                              'Display data input disable
                            End Sub
                            
                            
                            
                            
                            Sub D3310commandout(byval D3310value As Byte)
                               D3310ce = 0                                              'Display data input enable
                               D3310dc = 0                                              'Command mode
                               Spiout D3310value , 1
                               D3310ce = 1                                              'Display data input disable
                            End Sub
                            
                            Sub D3310dataout(byval D3310value As Byte)
                               D3310ce = 0
                                                                            'Display data input enable
                               D3310dc = 1                                              'Data mode
                               Spiout D3310value , 1
                            
                               D3310ce = 1                                              'Display data input disable
                            End Sub
                            
                            Sub D3310position(byval D3310x As Byte , Byval D3310y As Byte)       'Y is the row (0-5), X is the column (0-13)
                            
                               Local D3310byte As Byte                                  'Command or data output
                            
                               D3310commandout &H20                                     'Horizontal Addressing
                            
                               Waitus 250                                               'Wait for the CE to settle
                            
                               D3310ce = 0                                              'Display data input enable
                               D3310dc = 0                                              'Command mode
                            
                               D3310byte = D3310x                                       'Send horizontal address
                               D3310byte = D3310byte + &H80
                               Spiout D3310byte , 1
                            
                               D3310byte = D3310y + &H40                                'Send vertical address
                               Spiout D3310byte , 1
                            
                               D3310ce = 1                                              'Display data input disable
                            
                            End Sub
                            
                            Nload:
                               Data &H1F , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &H1F
                            Oload:
                               Data &H1F , &H1F , &H1F
                            
                            
                            
                            Getmenu:
                               Main = 2
                               Exitloop = 1
                            
                            Return
                            Up:
                               Decr Main
                               Exitloop = 1
                            Return
                            
                            
                            Entry:
                               Select Case Main
                                  Case 2 : Main = 5
                                  Case 3 : Main = 6
                                  Case 4 : Main = 7
                               End Select
                               Exitloop = 1
                            Return
                            
                            
                            Down:
                               Incr Main
                               Exitloop = 1
                            Return
                            
                            Riight:
                               Incr Main
                               Exitloop = 1
                               Exitwhile = 1
                            Return
                            
                            Leeft:
                            
                               Decr Main
                            
                            Return
                            Inncr:
                               Select Case Main
                                  Case 5 : Flag = 1
                                  Case 6 : Flag = 2
                                  Case 7 : Flag = 3
                               End Select
                               Exitloop = 1
                            Return
                            Deecr:
                            Select Case Main
                                  Case 5 : Flag = 11
                                  Case 6 : Flag = 22
                                  Case 7 : Flag = 33
                               End Select
                               Exitloop = 1
                            Return
                            
                            Wat24c64:
                               I2cstart
                               I2cwbyte Xeewrite
                               I2cwbyte Hbyte
                               I2cwbyte Lbyte
                               I2cwbyte Dataout
                               I2cstop
                               Waitms 5
                            Return
                            
                            
                            
                            
                            Rat24c64:
                               I2cstart
                               I2cwbyte Xeewrite
                               I2cwbyte Hbyte
                               I2cwbyte Lbyte
                               I2cstart
                               I2cwbyte Xeeread
                               I2crbyte Datain , Nack
                               I2cstop
                            Return

                            دیدگاه


                              #15
                              پاسخ : پروگرام نشدن مگا۳۲۸ بعد از تغییر فرکانس به ۸مکاهرتز

                              با درود . . .
                              این روش هم تست بزنید بد نیست
                              شاید جواب بده:
                              با درود . . . این روش رو من از FAM عزیز یاد گرفتم و همون دفعه اول جواب داد.حیفم اومد بقیه هم استفاده نکنن. اول برنامه ای روکه در متن عکس میبینید در u1 پروگرام کنید.سپس سیمی رو که در عکس میبینید به پایه XTAL1 در آیسی قفل شده وصل کنید بعد همون stk200 رو به آیسی قفل شده وصل کنید و به راحتی فیوز بیتهاتون رو تغییر بدین قابل


                              جالب اینکه یکی دیگه اومده یه تاپیک دیگه زده و حتی حالش رو نداشته از خودش متن بزاره ، همون قبلی هارو کپی کرده!!!


                              اینم تصویرش:

                              دیدگاه

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