- LiFePO4 Speicher Test         
Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte
Ergebnis 61 bis 70 von 88

Thema: mehrere DS18S20 an einem 1 wire Bus

  1. #61
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Anzeige

    E-Bike
    Na ja, Singles können ziemlich lang werden. Mach den String mal länger.

  2. #62
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    das geht aber auch nicht:

    Dim Sek As String * 800
    Dim Sekunden As Single

    Sek = Fusing(sekunden , "##")

    Error:247 Line129 , expected[##] , in File.....

  3. #63
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Ein String kann glaube ich nur 256 Zeichen lang sein.
    Aber Fusing ist bestimmt eh die falsche Funktion.
    Wenn du nur eine führende 0 haben willst, benutzt du
    out_str=Format(in_string, "00")

  4. #64
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    @Eisbaeeer
    ich habe das Programm mal neu sortiert und die Variablen namen geändert, damit das Prog. übersichtilicher ist und man weiß, welche Var. wozu gehört!

    Tobias

    P.S.: Der Fehler mit FUSING ist noch nicht behoben...

    Code:
    '-------------------------------------------------------------------------------
    'Konfiguration µC:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    
    '-------------------------------------------------------------------------------
    'Konfiguration LCD
    'Config Lcd = 20 * 4
    'Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portd.7 , Rs = Portb.0
    'Cursor Off Noblink
    
    '-------------------------------------------------------------------------------
    '16Bit Timer:
    Config Timer1 = Timer , Prescale = 64
    On Timer1 Timer_irq
    Const Timervorgabe = 3036                                   'also 1 mal pro Sekunde!!!
    Enable Timer1
    Enable Interrupts
    
    '-------------------------------------------------------------------------------
    'Ein- Ausgänge:
    Config Pinb.1 = Output
    Led Alias Portb.1
    Config 1wire = Portb.0
    
    '-------------------------------------------------------------------------------
    'Variablen
    
    'Uhr
    
    
    Dim Sek As String * 800
    
    
     Dim Sekunden As Single
     Dim Minuten As Byte
     Dim Stunden As Byte
    
    'Datum
     Dim Tag As Byte
     Dim Monat As Byte
     Dim Jahr As Word
    
    'rechnen
    Dim T10 As Integer
    Dim T11 As Integer
    Dim T20 As Integer
    Dim T21 As Integer
    Dim T13 As String * 10
    Dim T23 As String * 10
    Dim T12 As Single
    Dim T22 As Single
    
    Dim Id1(8) As Byte
    Dim Id2(8) As Byte
    Dim Id3(8) As Byte
    
    Dim Ar1(9) As Byte
    Dim Ar2(9) As Byte
    Dim Ar3(9) As Byte
    
    Dim Tmp10 As Byte
    Dim Tmp20 As Byte
    
    Dim W As Byte
    
    
    Declare Sub Convert_temp
    Declare Sub Read_temp10
    Declare Sub Read_temp20
    
    
    W = 1wirecount()
    Id1(1) = 1wsearchfirst()                                    'ID des 1. auslesen
    Id2(1) = 1wsearchnext()                                     'ID des nächsten auslesen
    'Id3(1) = 1wsearchnext()                                     'ID des nächsten auslesen
    
    '-------------------------------------------------------------------------------
    'Programm:
    '-------------------------------------------------------------------------------
    'Start
    
    Sekunden = 0
    Minuten = 0
    Stunden = 0
    Tag = 1
    Monat = 6
    Jahr = 2007
    
    
    
    Do
    
    Sek = Fusing(sekunden , "##")
    
    
    Gosub Convert_temp
    Gosub Read_temp10                                           'Springe zum Subprogramm
    Gosub Read_temp20                                           'Springe zum Subprogramm
    'Gosub Read_temp30                                           'Springe zum Subprogramm
    
    
    Print "Uhrzeit: " ; Stunden ; ":" ; Minuten ; ":" ; Sekunden ; "  Datum: " ; Tag ; "." ; Monat ; "." ; Jahr
    Print "Temp. T13: " ; T13 ; Chr(248) ; "C" ; " / Temp. T23: " ; T23 ; Chr(248) ; "C"
    'Print T13 ; " °C"
    'Print T23 ; " °C"
    
    
    
    If Tag = 32 Then
        Tag = 1
        Incr Monat
        If Monat = 13 Then
          Monat = 1
          Incr Jahr
        End If
      End If
    
    
    
    
    
    
    
    Loop
    
    
    
    
    
    
    
    
    '...............................................................................
    'Sprungmarken
    '...............................................................................
    
    'Sub Convert_Temp
    Sub Convert_temp
     1wreset
     1wwrite &HCC                                               'Skip Rom
     1wwrite &H44                                               'Convert Temp
     Waitms 750                                                 'alle DS konvertieren
     1wreset
    End Sub
    
    '...............................................................................
    'Sub Read_temp10
    Sub Read_temp10
    1wreset
    1wwrite &H55                                                'Match Rom
    1wwrite Id1(1) , 8                                          'DS1820 ID senden
    1wwrite &HBE                                                'Read Scratchpad
    Ar1(1) = 1wread(9)                                          'Temp Wert auslesen
    1wreset
          Tmp10 = Ar1(1) And 1
          If Tmp10 = 1 Then Decr Ar1(1)
          T10 = Makeint(ar1(1) , Ar1(2))
          T10 = T10 * 50
          T10 = T10 - 25
          T11 = Ar1(8) - Ar1(7)
          T11 = T11 * 100
          T11 = T11 / Ar1(8)
          T10 = T10 + T11
          T10 = T10 / 10
          T12 = T10 / 10
          T13 = Fusing(t12 , "#.#")
    End Sub
    
    '...............................................................................
    'Sub Read_temp20
    Sub Read_temp20
    1wreset
    1wwrite &H55                                                'Match Rom
    1wwrite Id2(1) , 8                                          'DS1820 ID senden
    1wwrite &HBE                                                'Read Scratchpad
    Ar2(1) = 1wread(9)                                          'Temp Wert auslesen
    1wreset
         Tmp20 = Ar2(1) And 1
          If Tmp20 = 1 Then Decr Ar2(1)
          T20 = Makeint(ar2(1) , Ar2(2))
          T20 = T20 * 50
          T20 = T20 - 25
          T21 = Ar2(8) - Ar2(7)
          T21 = T21 * 100
          T21 = T21 / Ar2(8)
          T20 = T20 + T21
          T20 = T20 / 10
          T22 = T20 / 10
          T23 = Fusing(t22 , "#.#")
    End Sub
    
    '...............................................................................
    Timer_irq:
      Timer1 = Timervorgabe
    
      Toggle Led
    
        Incr Sekunden
      If Sekunden = 60 Then
        Sekunden = 0
        Incr Minuten
    
        If Minuten = 60 Then
          Minuten = 0
          Incr Stunden
    
          If Stunden = 24 Then
            Stunden = 0
            Incr Tag
          End If
        End If
      End If
    
    
    Return

  5. #65
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    @for_ro

    beides als String?

  6. #66
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    also jetzt kommt keine Fehlermeldung ABER er schreibt immer 00

    Dim Sek As String * 2
    Dim Sekunden As Single

    Sek = Format(sekunden , "00")

  7. #67
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    beides müssen strings sein, also erst mal sekunden_str=str(sekunden)

  8. #68
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Ich habe mir gerade mal die Temperatur Berechnung angesehen.
    Funktioniert das so auch für negative Temperaturen?

  9. #69
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    also negative Temperaturen habe ich noch nicht ausprobiert

  10. #70
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    jetzt zeigt er mir nicht mehr die Zahlen an sondern als ZEICHEN

    Smilis, Pfeile usw.

Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress