- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 35 von 35

Thema: Wecker bauen

  1. #31
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    Anzeige

    E-Bike
    hier mal mein code. es scheint mir als ob der AVR zu langsam wäre. ich muss jetzt etwas länger auf den tastern bleiben dass er ein signal wahrnimmt. is das normal?

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    $baud = 19200
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    Config Lcdbus = 4
    Cursor Off
    Ddrb = &B11111111
    Ddrd = &B00000000
    Portd.2 = 1
    Portd.3 = 1
    Portd.4 = 1
    Portd.5 = 1
    Portd.6 = 1
    Portd.7 = 1
    
    Enable Interrupts
    Config Clock = Soft
    Declare Sub Stunde
    Declare Sub Minute
    Declare Sub Menue
    Declare Sub Stundew
    Declare Sub Minutew
    Declare Sub Onoff
    Declare Sub Licht
    Declare Sub Stellenmenue
    
    Dim Modus As Byte
    Dim Stellenstunde As Byte
    Dim Stellenminute As Byte
    Dim Konfiguration As Byte
    Dim Anaus As Byte
    
    
    Cls
    
    Time$ = "00:00:00"
    
    Do
       Locate 1 , 1
       Lcd Time$ ; "  " ;
       Locate 1 , 12
    
    
       If Stellenstunde < 10 Then Lcd "0"
       Lcd Stellenstunde ; ":"
             If Stellenminute < 10 Then Lcd "0"
             Lcd Stellenminute
    
    
       Debounce Pind.2 , 0 , Menue , Sub
       Debounce Pind.3 , 0 , Stellenmenue , Sub
    
    
       If Konfiguration = 1 Then                                'Wecker stellen
          Debounce Pind.4 , 0 , Stundew , Sub
          Debounce Pind.5 , 0 , Minutew , Sub
       End If
    
    
       If Konfiguration = 2 Then                                'Uhr stellen
          Debounce Pind.4 , 0 , Stunde , Sub
          Debounce Pind.5 , 0 , Minute , Sub
       End If
    
       Debounce Pind.6 , 0 , Onoff , Sub
    
       If Konfiguration = 0 Then                                'Wecker an/aus
              If Anaus = 0 Then
                Locate 2 , 11
                Wait 1
                Lcd "   aus"
              End If
    
             If Anaus = 1 Then
                Locate 2 , 11
                Wait 1
                Lcd "    an"
             End If
       End If
    
    
       If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 Then
                   Portb.5 = 1
                   Else
                   Portb.5 = 0
       End If
    
    
       Debounce Pind.7 , 0 , Licht , Sub
    
    Loop
    
    
    
    'Stellenmenü                                                'Menü zum einstellen Wecker/Uhr
    Stellenmenue:
    Incr Konfiguration
       If Konfiguration = 3 Then Konfiguration = 0
       Locate 2 , 11
    
       If Konfiguration = 0 Then
          Locate 2 , 11
       End If
    
    
       If Konfiguration = 1 Then
          Locate 2 , 11
          Wait 1
          Lcd "Wecker"
       End If
    
    
    
       If Konfiguration = 2 Then
          Locate 2 , 11
          Wait 1
          Lcd "   Uhr"
       End If
    Return
    
    
    'Menü                                                       'Menü MP3, Radio, Aux
    Menue:
    Incr Modus
       If Modus = 4 Then Modus = 0
       Locate 2 , 1
       If Modus = 0 Then
          Locate 2 , 1
          Wait 1
          Lcd "Aus  "
       End If
    
    
       If Modus = 1 Then
          Locate 2 , 1
          Wait 1
          Lcd "MP3  "
          Portb.0 = 1
       Else
          Portb.0 = 0
       End If
    
    
    
       If Modus = 2 Then
          Locate 2 , 1
          Wait 1
          Lcd "Radio"
          Portb.1 = 1
       Else
          Portb.1 = 0
       End If
    
    
    
       If Modus = 3 Then
          Locate 2 , 1
          Wait 1
          Lcd "AUX  "
          Portb.2 = 1
       Else
          Portb.2 = 0
       End If
    Return
    
    
    
    'Stunde                                                    'Hier wird die Stunde der Uhr hochgezählt
    Stunde:
       Incr _hour
       If _hour > 23 Then
          _hour = 00
       End If
    Return
    
    
    
    'Minute                                                     'Hier wird die Minute der Uhr hochgezählt
    Minute:
       Incr _min
       If _min > 59 Then
          _min = 00
       End If
    
    Return
    
    
    
    'MinuteW                                                    'Hier wird die Minute des Weckers hochgezählt
    Minutew:
    Incr Stellenminute
       If Stellenminute > 59 Then
       Stellenminute = 0
       End If
    Return
    
    
    
    'Stundew                                                    'Hier wird die Stunde des Weckers hochgezählt
    Stundew:
    Incr Stellenstunde
       If Stellenstunde > 23 Then
       Stellenstunde = 0
       End If
    Return
    
    
    
    'onoff                                                      'Hier wird der Wecker ein- und ausgeschaltet
    Onoff:
    Incr Anaus
       If Anaus = 2 Then Anaus = 0
    Return
    
    
    
    
    'Licht                                                      'Hier wird das Licht für 4 Sekunden eingeschaltet
    Licht:
    
       Portc.5 = 1
       Wait 4
    
    Return

  2. #32
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von xbgamer
    hier mal mein code. es scheint mir als ob der AVR zu langsam wäre. ich muss jetzt etwas länger auf den tastern bleiben dass er ein signal wahrnimmt. is das normal?
    Da sind zwei Sachen, die du bedenken musst.
    Erstens benötigt jedes Debounce, dessen Bedingung erfüllt ist (Eingang hat den angegebenen Wert), die voreingestellte Debounce Zeit. Default ist dabei 25ms. Die kannst du mittels Config Debounce ändern.
    Zweitens wird jedes Wait in deinem Code die Ansprechzeit verändern. Die Debounce sind also kein Interrupt, die ein Wait unterbrechen könnten.

  3. #33
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    jo habs gemerkt dass die waits ziemlich viel leistung brauchen. nachdem die raus waren lief alles wunderbar. werd mich jetzt an die hardware waagen und alles mal durchplanen.

  4. #34
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2006
    Beiträge
    14
    Was hast du am Code verändert, damit die Reaktion sich an den Tastern verschnellert?

  5. #35
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2006
    Beiträge
    14
    Ich kann die Uhr zwar einstellen, aber laufen tut sie nicht. Die Sekundenanzeige bleibt auf :00

    Ich such eigentlich nur einen Uhren-Wecker mit einem 16*2 LCD Display. Also "MP3" und "Radio" sind nicht sooo nötig...
    Die Struktur von deiner uhr gefällt mir ganz gut, also in der Ersten Zeile linke Seite die Uhrzeit mit Sekunde und die Rechte Seite die Alarmzeit, coole Sache...

    Greetz
    mohi

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

LiFePO4 Speicher Test