logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

kwarcem - programowanie bascom

100 27 Lut 2009 16:37 1686 12
REKLAMA
  • #1 6212619
    100
    Poziom 14  
    witam

    jestem nowym w programowaniu bascomem
    otóż robię zegarek z kalendarzem na atmega8
    i z kwarcem zegarkowym. I jak ustawiam fusebity cksel 1001 bo takie są na małą częstotliwość i jak zmienię te fusebity to atmega8 mi się blokuje.
    proszę o nie usuwanie tego tematu jak moje wszystkie inne
    oto kod do procesora
    
    $regfile = "m8def.DAT"
    $crystal = 3276800
    Config Lcd = 20 * 2
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5
    Dim S As Byte                                               'sekunda
    Dim M As Byte                                               'minuta
    Dim K As Byte                                               'pomocnicza
    Dim G As Byte                                               'godzina
    Dim P As Bit                                                'chyba pomocnicza :D
    Dim R As Integer                                            ' rok
    Dim Mi As Byte                                              'miesiac
    Dim D As Byte                                               'dzien
    Dim Y As Byte                                               'yogi i bubu :D  nie mam zielonego pojecia po co tego uzylem
    Dim Dd As String * 3 , Md As String * 3                     'dzien slownie
    Dim Dmax As Byte                                            'dlugosc miesiaca
    Dim Dl As Integer                                           ' chyba pomocnicza
    Dim A As Byte , B As Byte , C As Byte                       ' pomocnicze zmienne
    Dim Z As Integer
    Dim Dz As Integer
    Dim Dy As Single
     Dim Ddd As Byte
    Config Pind.7 = Input
    Config Pind.6 = Input
    Portd.7 = 1
    Portd.6 = 1
    Zmien Alias Pind.7
    Nastepny Alias Pind.6
    
    
    
    Config Timer1 = Timer , Prescale = 256
    Enable Interrupts
    Enable Timer1
    On Timer1 Mierzymy
    Cursor Off
    
    
    
    
    Start:
    K = 0
    G = 0
    M = 0
    S = 0
    R = 2009
    D = 26
    Mi = 2
    
    Cls
    
    
    '-------------------------------
    Lcd "   Ustawienia   "
    Lowerline
    Lcd "     zegara     "
    Wait 2
    
    '---------------------wpisywanie roku
    
    Petla:
       Cls
       Lcd "Rok "
       Lcd R
       Waitms 500
       Debounce Nastepny , 0 , Petla1
       If Zmien = 0 Then
                R = R + 1
    
          End If
       Goto Petla
    
    
    
    '-----------------------------wpisywanie miesiaca
    
    
    Petla1:
       Cls
       Lcd "Miesiac "
       Lcd Mi
       Waitms 500
       Debounce Nastepny , 0 , Petla2
       If Zmien = 0 Then
                Mi = Mi + 1
          If Mi > 12 Then
          Mi = 1
    
          End If
    
       End If
       Goto Petla1
    
    
    
    
    
    '-------------------------- wpisywanie dni
    
    
    Petla2:
       Gosub Iledni
       Cls
       Lcd "Dzien "
       Lcd D
       Waitms 500
       Debounce Nastepny , 0 , Petla3
       If Zmien = 0 Then
                D = D + 1
          If D > Dmax Then
          D = 1
    
          End If
    
       End If
       Goto Petla2
    '-------------------godzina
     Petla3:
       Cls
       Lcd "Godzina "
       Lcd G
       Waitms 500
       Debounce Nastepny , 0 , Petla4
       If Zmien = 0 Then
                G = G + 1
          If G > 23 Then
          G = 0
       End If
       End If
       Goto Petla3
      '-------------------minuty
     Petla4:
       Cls
       Lcd "Minuty "
       Lcd M
       Waitms 500
       Debounce Nastepny , 0 , Dalej
       If Zmien = 0 Then
                M = M + 1
          If M > 59 Then
          G = 0
       End If
       End If
       Goto Petla4
    
    
    
    
    
    
    Dalej:
    
     Cls
    Lcd "     Koniec     "
    Lowerline
    Lcd "    ustawien    "
    Wait 3
    Cls
    
    
    
    
    
    
    
    Start Timer1
    '------------------koniec ustawiania
    
    
    Do
    Upperline
    Lcd "    "
    Gosub Jakidzien
    If G < 10 Then
       Lcd "0"
       End If
       Lcd G
    
    Lcd ":"
    If M < 10 Then
    Lcd "0"
    End If
    Lcd M
    Lcd ":"
    If S < 10 Then
    Lcd "0"
    End If
    Lcd S
    Lcd " "
    '+--------------------dolna linijka
    
    Lowerline
    Gosub Jakimiesiac
    
    Lcd Dd
    Lcd "  "
    If D < 10 Then
    Lcd " "
    End If
    Lcd D
    Lcd " "
    Lcd Md
    Lcd " "
    Lcd R
    
    Lcd "     "
    Gosub Jakirok
    
     Waitms 400
    Loop
    
    
    '-------------------------------
    Mierzymy:
    
    Timer1 = 36735
    Incr S
    If S = 60 Then
       S = 0
       Incr M
       If M = 60 Then
          M = 0
          Incr G
           If G = 24 Then
            S = 00
            M = 00
            G = 00
            Incr D
              Incr Ddd
               If D > Dmax Then
                D = 1
                 Incr Mi
                Ddd = 0
                  If Mi > 12 Then
                  Mi = 1
                  Incr R
                 End If
               End If
    
           End If
       End If
    End If
    
    
    Return
    '---------------------------------
    
    Iledni:
    Gosub Jakirok
    Select Case Mi
        Case 1 : Dmax = 31
        Case 3 : Dmax = 31
        Case 5 : Dmax = 31
        Case 7 : Dmax = 31
        Case 8 : Dmax = 31
        Case 10 : Dmax = 31
        Case 12 : Dmax = 31
        Case 2 : Dmax = 28 + Dl
        Case Else : Dmax = 30
      End Select
      Return
     '--------------------------------------nazwa miesiaca
    Jakimiesiac:
    
     Select Case Mi
       Case 1 : Md = "Sty"
        Case 2 : Md = "Lut"
       Case 3 : Md = "Mar"
        Case 4 : Md = "Kwi"
        Case 5 : Md = "Maj"
        Case 6 : Md = "Cze"
        Case 7 : Md = "Lip"
         Case 8 : Md = "Sie"
        Case 9 : Md = "Wrz"
       Case 10 : Md = "Paz"
        Case 11 : Md = "Lis"
        Case 12 : Md = "Gru"
    
    End Select
    
    
    Return
    
    
    Jakirok:
       A = R Mod 4
       B = R Mod 100
       C = R Mod 400
         If A = 0 And B <> 0 Or C = 0 Then
           Dl = 1
         Else
        Dl = 0
    End If
    Return
    
    
    
    Jakidzien:
      Dz = 0
      Dy = 0
      Z = 0
    
      If Mi < 3 Then
      Z = R - 1
      Else
      Z = R
        End If
      If Mi >= 3 Then
      C = 2
      Else
      C = 0
      End If
    
      Dz = 23 * Mi
        Dy = Dz / 9
       Dz = Int(dy)
       Dz = Dz + D
       Dz = Dz + 4
       Dz = Dz + R
       Dy = Z / 4
       Dz = Dz + Int(dy)
       Dy = Z / 100
       Dz = Dz - Int(dy)
       Dy = Z / 400
       Dz = Dz + Int(dy)
       Dz = Dz - C
       Z = Dz
       Ddd = Z Mod 7
    
       Select Case Ddd
        Case 0 : Dd = "PON"
        Case 1 : Dd = "WTO"
        Case 2 : Dd = "SRO"
        Case 3 : Dd = "CZW"
        Case 4 : Dd = "Pia"
        Case 5 : Dd = "SOB"
        Case 6 : Dd = "NIE"
        End Select
      Return
    
    
    End
  • REKLAMA
  • #2 6212752
    Freddy
    Poziom 43  
    100 napisał:
    witam

    jestem nowym w programowaniu bascomem
    otóż robię zegarek z kalendarzem na atmega8
    i z kwarcem zegarkowym. I jak ustawiam fusebity cksel 1001 bo takie są na małą częstotliwość i jak zmienię te fusebity to atmega8 mi się blokuje.
    proszę o nie usuwanie tego tematu jak moje wszystkie inne
    oto kod do procesora ...........

    No i co dalej ??? Ciekawe, tylko ja na przykład nie wiem o co Ci chodzi. Może jestem matoł ? Gdzie ten kwarc zegarkowy ?> Podpowiedz cos kolego, bo wszystkie nasze wróżki są jeszcze na feriach zimowych.
  • REKLAMA
  • #3 6212930
    100
    Poziom 14  
    kwarc podpięty jest do wyjść xtal poprzez kondensatory 22 fp co jeszcze chcesz wiedzieć
  • REKLAMA
  • #4 6212943
    Konto nie istnieje
    Poziom 1  
  • #5 6213137
    100
    Poziom 14  
    ale jak zmienie na 32768 to mi wywala błędy

    kwarcem - programowanie bascom
  • #6 6213322
    Konto nie istnieje
    Poziom 1  
  • #7 6213347
    100
    Poziom 14  
    po $crystal czy tak
  • #8 6213389
    Konto nie istnieje
    Poziom 1  
  • #9 6213902
    100
    Poziom 14  
    dobra narazię dzięki jutro będę próbował zaprogramować te atmegi
    zobaczymy jak pójdzie to co odpowiem

    Dodano po 1 [minuty]:

    a jak mam stk 200 to też powino rzyszyć te 1000
  • #10 6214195
    janbernat
    Poziom 38  
    rzyszyć te 1000-??????
    Jedno co warto-to upić się warto...
  • REKLAMA
  • #11 6215461
    100
    Poziom 14  
    dzisiaj zaprogramowałem nową atmege żeby chodziła na zewnętrznym kwarcu to się też zablokowała kwarc podpięty kondensatory 22pf czy może coś żle robie
  • #12 6215488
    snow
    Poziom 31  
    fusebity źle ustawiasz
  • #13 6215523
    100
    Poziom 14  
    dobrze ustawiam cksel 1001 bo tak wyczytałem w internecie jak ustawiam na wewnętrzny to chodzi dobrze a jak przestawię na zewnętrzny to się blokuje
REKLAMA