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

Thema: RTC

  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9

    RTC

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Ich hab hier ein Programm welches eine RTC + ein EEPROM im I²C ansteuert.
    Jedesmal wenn ich den Code kompilieren will schreibt Bascom allerdings:

    Error: 1 Line: 82 Label not fount [GETDATETIME ]

    Woran liegt das?

    Achja hier der Code

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    Const Ds1307w = &HD0
    Const Ds1307r = &HD1
    
    Dim Zeit As String * 10
    Dim Datum As String * 10
    Dim Eingabe As String * 2
    
    Config Clock = User
    Dim Weekday As Byte
    
    Start:
       Input "Zeit und Datum stellen? (y/n):" , Eingabe
    
       If Eingabe = "y" Then
    
        Input "Time hh:mm:ss: " , Zeit
        Input "Date mm-dd-yy" , Datum
    
    
        Time$ = Zeit
        Date$ = Datum
    
       End If
    
    Do
     Print "Date Time :" ; Date$ ; "" ; Time$
     Wait 1
    Loop
    
    Sub_getdatetime
    
       I2cstart
       I2cwbyte Ds1307w
       I2cwbyte 0
    
       I2cstart
       I2cwbyte Ds1307r
       I2crbyte _sec , Ack
       I2crbyte _min , Ack
       I2crbyte _hour , Ack
       I2crbyte Weekday , Ack
       I2crbyte _day , Ack
       I2crbyte _month , Ack
       I2crbyte _year , Ack
       I2cstop
    
       _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
       _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
    
    Return
    
    Setdate:
    
     _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
    
     I2cstart
     I2cwbyte Ds1307w
     I2cwbyte 4
     I2cwbyte _day
     I2cwbyte _month
     I2cwbyte _year
     I2cstop
    Return
    
    Settime:
     _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
    
     I2cstart
     I2cwbyte Ds1307w
     I2cwbyte 0
     I2cwbyte _sec
     I2cwbyte _min
     I2cwbyte _hour
     I2cstop
    
    Return

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Ich kenne zwar Bascom nicht, aber bei jeder Programmiersprache ist jedes Zeichen vom Compiler so angenommen, wie definiert.

    Deswegen wenn du irgendwo eine Sub_GETDATETIME aufrufst und Sub_getdatetime definiert hast, findet der Compiler die grossgeschriebene Sub im deinem Programm natürlich nicht.

    MfG

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Es wird eine Sub getdatetime vermisst. Evtl wird diese durch eine LIB aufgerufen.

    Im Zweifel einfach
    Code:
    getdatetime:
    return
    am Ende vom Programm einfügen und schauen, ob es geht.

    edit:
    Bascom unterscheidet nicht zwischen Groß- und Kleinschreibung.
    In der IDE wird eher der erste buchstabe immer (automatisch) Großgeschrieben und der Rest klein. Eine Variable "lngZeit" wird automatisch zu "Lngzeit".
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    54
    Beiträge
    1.258
    Hallo Kampi,

    Sub_Getdatetime -> ohne Sub und ohne Unterstrich, stattdessen einfach Getdatetime:. Groß- oder Kleinschreibung spielt keine Rolle.

    Gruß, Michael

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    @ Michael

    Danke für dein wichtiges Info, da ich als PIC-Benutzer und ASM-Freak ernst überlege, wegen Zeitersparnis beim Erstellung von unfangreichen "langsamen" Programmen, zukünftige Verwendung vom AVRs mit Bascom und eventuellen ASM-Funktionen.

    Früher habe ich auf diese Weise andere Prozessoren noch unter DOS in Q-BASIC Programmiert und Bascom scheint mir sehr ännlich zu sein.

    MfG

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Danke es funktioniert nun....also das kompilieren
    Da musste echt nur das Sub und der Unterstrich weg. Komisch eigentlich weil ich hab das 1 zu 1 aus dem Buch abgeschrieben aber naja

    Edit: So hab das nun getestet und er fragt mich nach dem Datum und der Zeit aber danach kommt nichts mehr? Also die Zeit geht nicht weiter. Heißt das das IC oder der Quarz ist kaputt?

    Lg

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    In der IDE wird eher der erste buchstabe immer (automatisch) Großgeschrieben und der Rest klein. Eine Variable "lngZeit" wird automatisch zu "Lngzeit".
    Diese "Krankheit" kann man aber zum Glück abstellen.
    Wie der Punkt genau heisst, weiss ich grad nicht. Glaub sogar irgendwas mit "Case".
    #ifndef MfG
    #define MfG

Berechtigungen

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

Solar Speicher und Akkus Tests