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

Mega prosty zegarek. Weryfikacja kodu. Ustawienie czasu.

kzww 09 Lip 2007 05:51 1330 2
REKLAMA
  • #1 4063873
    kzww
    Poziom 11  
    Posty: 35
    witam proszę o zweryfikowanie kodu i pomoc w sposobie realizacji ustawiania czasu, chcę użyć kwarcu zegarkowego 32.768Khz pod portb i portc mają być podłączone diody tak żeby czas był wyświetlany binarnie


    $regfile = "m8def.DAT"
    $crystal = 1000000
    
    Enable Interrupts
    Config Clock = Soft , Gosub = Sectic
    
    Time$ = "00:00:00"
    
    Do
    If _hour > 12 Then
    _hour = 0
    Loop
    
    
    Sectic:
    Toggle Pind.0
    Portc = _hour
    Portb = _min
    Return
    
  • REKLAMA
  • #2 4069392
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Jakiś mały przykład:

    
    
    
       $regfile = "m8def.dat"
       $crystal = 32768
    
       Config Timer0 = Timer , Prescale = 1024
       Load Timer0 , 32
       On Timer0 1_sekunda
    
       Config Pind.7 = Input : Set_godz Alias Pind.7
       Config Pind.6 = Input : Set_min Alias Pind.6
    
       Dim Sekundy As Byte
       Dim Minuty As Byte
       Dim Godziny As Byte
    
       Enable Timer0
       Enable Interrupts
    
       Godziny = 0 : Minuty = 0 : Sekundy = 0
    
       Do
       Portc = Godziny
       Portb = Minuty
    
       If Set_godz = 0 Then
        Waitms 100 : Bitwait Set_godz , Set : Incr Godziny
         End If
    
       If Godziny > 12 Then Godziny = 1
    
       If Set_min = 0 Then
        Waitms 100 : Bitwait Set_min , Set : Incr Minuty : Sekundy = 0
         End If
    
       If Minuty > 59 Then Minuty = 0
    
       Loop
    
       End
    
       1_sekunda:
       Load Timer0 , 32
       Incr Sekundy
    
       If Sekundy > 59 Then
        Sekundy = 0 : Incr Minuty
         End If
    
       If Minuty > 59 Then
        Minuty = 0 : Incr Godziny
         End If
    
       If Godziny > 12 Then
        Godziny = 1
         End If
    
       Return
    
    


    Program używa przerwania ale nie programowego zegara (soft clock). Mam nadzieję, że nie ma grubszych błędów bo piszę bez kompilatora.

    --
    pozdrawiam
  • #3 4070099
    kzww
    Poziom 11  
    Posty: 35
    ja bym jednak wolał soft clock, poco pisać algorytm obsługi czasu skoro soft clock sam juz generuje zmienne _hour _min itd nie rozumiem po co ludzie utrudniają sobie życie pisząc zegarek i nie używajac soft clock, chyba ze ma jakieś straszne wady o których nie wiem, proszę jednak o odpowiedz na pytanie czy mój kod będzie działał, chcę żeby tylko zegar chodził na kwarcu procesor ma być taktowany wewnętrznym 1Mhz
REKLAMA