- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 6 von 6

Thema: BASCOM LCD Uhr Bug

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Hallo!

    Hinweis1: Versuch herauszufinden oder einfach logisch denken wie oft Deine Hauptschleife
    in einer Sekunde durchlaufen wird, und wie das sich auf Deine Anzeige auswirkt

    Hinweis2: Grundsätzlich beschreibt man das Display nur wenn sich eine Variable ändert
    also 1mal pro Sekunde >>> Goto Hinweis1


    MfG
    Rone

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    15.04.2008
    Beiträge
    330
    Zuerst habe ich nur den Text geschrieben, und das ohne wait gemacht, da ist er nicht so stark geflimmert...

    Das mit den Zahlen dürfte dann das Problem gewesen sein... Er überarbeitet sich


    Dabei sollten die Zahlen doch nur einmal pro Minute verändert werden... (Timer1 -> 1min)

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ich hab mal die zusätzliche Variable Minutes_old eingebaut:
    Code:
    $regfile = "m8def.dat"                  ' specify the used micro
    $crystal = 1000000                      ' used crystal frequency
    $baud = 19200                           ' use baud rate
    $hwstack = 120                          ' default use 32 for the hardware stack
    $swstack = 120                          ' default use 10 for the SW stack
    $framesize = 50                         ' default use 40 for the frame space
    
    Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
    
    Dim A As Byte
    Config Lcd = 16 * 2                     'configure lcd screen
    
    Config Timer1 = Timer , Prescale = 1024
    On Timer1 Isr_von_timer1
    Timer1 = 6942
    
    Dim Minutes As Byte
    Dim Minutes_old As Byte
    Dim Hours As Byte
    Dim Minutes10 As Byte
    Dim Hours10 As Byte
    Dim Day As Integer
    Dim I As Byte
    
    Minutes = 0
    Minutes_old = 100                       ' 100 = Startanzeige aufbauen
    Minutes10 = 0
    Hours10 = 0
    Hours = 0
    
    Ddrd = &B00000000                       'input D
    
    Enable Timer1
    Enable Interrupts
    
    Cls                                     'clear the LCD display
    Lcd "Vienna Time"                       'display this at the top line
    
    Do                                      ' Hauptprogramm
    
       If Hours = 23 And Minutes = 56 Then  ' Gangkorrektur
          Day = Day + 1
          Hours = 0
          Minutes = 0
       End If
    
       If Pind.0 = 1 Then                   ' set clock
          Minutes = Minutes + 1
       End If
    
       If Pind.1 = 1 Then
          Hours = Hours + 1
          Minutes_old = 100
       End If
    
       If Pind.2 = 1 Then
          Day = Day + 1
          Minutes_old = 100
       End If
    
       If Pind.3 = 1 Then
          Day = Day + 100
          Minutes_old = 100
       End If
    
       'Lowerline
    
       If Minutes <> Minutes_old Then       ' Ausgabe, wenn sich die Minuten geändert haben
          Hours10 = Hours / 10
          Minutes10 = Minutes / 10
    
          Locate 2 , 0                      'select the lower line
          Lcd Str(hours10)
          Lcd Str(hours)
          Lcd ":"                           'display this at the lower line
          Lcd Str(minutes10)
          Lcd Str(minutes)
    
          Lcd " "
          Lcd Day
          Lcd Str(day)
          Minutes_old = Minutes             ' Anzeige wurde aktualisiert
       End If
    
    Loop
    End
    
    Isr_von_timer1:
       Timer1 = 6942
       Minutes = Minutes + 1
       If Minutes = 60 Then
          Minutes = 0
          Hours = Hours + 1
       End If
    Return
    Ungetestet, sollte aber wenigstens das von Rone schon beschriebene Prinzip zeigen.

    Gruß

    mic
    Geändert von radbruch (16.09.2011 um 12:06 Uhr) Grund: Anzeige auch beim Stellen der Uhr aktualisieren
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. USB ASP mit Bascom nutzen? bzw AVRDUDE in Bascom eirichten?
    Von dremler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 09.04.2008, 16:35
  2. wie aus bascom *.bas eine bascom lib machen ????
    Von DarkBeast im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 08.12.2007, 19:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test