loetstelle.net
Lötstelle Userforum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Verschiedene Arrays Namen zuweisen

 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> BASCOM
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Lutze53



Anmeldungsdatum: 29.12.2011
Beiträge: 1

BeitragVerfasst am: Do 29.Dez 2011 22:16:39    Titel: Verschiedene Arrays Namen zuweisen Bauteile finden Antworten mit Zitat

Hallöchen,

arbeite momentan an einem kleinen Projekt für die Schule. Und zwar möchte ich 4 DS18S20 auslesen und auf ein LCD anzeigen lassen.

Den Code habe ich mom schon soweit das ich auf mein LCD die Temperatur von einem angezeigt bekomme (mom nur einer angeschlossen).
Eigentlich wollte ich zum start von den 4 Thermometern die ID auf dem LCD anzeigen lassen. das geht auch soweit, aber ich wollte die ID abspeichern lassen für spätere vorhaben, bzw wenn ich mal das Teil erweitern möchte

hier ist mal der Code (noch nicht ganz fertig, fehlt noch einiges wie Zweierkompliment für negativen Wert und und die Trennung der Temperatur der letzten Stelle)

Code:
'-------------------------------------------'
'     Mikrocontroller/Chip                  '
'-------------------------------------------'
$regfile = "m32def.dat"                                     'ATMEGA32 Registerdatei
$crystal = 8000000                                          'Externer Quarz 8Mhz
$hwstack = 40                                               'HardwareStack
$swstack = 16                                               'SoftwareStack
$framesize = 32                                             'Framesize
$baud = 9600                                                'Baudrate

'-------------------------------------------'
'     LCD Konfiguration                     '
'-------------------------------------------'
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , _
                 Db7 = Portb.7 , E = Portb.0 , Rs = Portb.1
Config Lcd = 16 * 2


'-------------------------------------------'
'     1Wire Konfiguration                   '
'-------------------------------------------'
Config 1wire = Porta.1


'-------------------------------------------'
'     Deklarationen                         '
'-------------------------------------------'
Declare Sub Initialisierung
Declare Sub Sensorsuche


'-------------------------------------------'
'     Variablen                             '
'-------------------------------------------'
Dim Id(8) As Byte                                           'Arrsy für die ID der DS18S20
Dim I As Byte

Dim Anzahl As Word

Dim Sc(9) As Byte
Dim T As Integer
Dim T1 As Integer



'-------------------------------------------'
'     Const                                 '
'-------------------------------------------'
Const Vers_1 = "Ver. HE.1.0.0"
Const Vers_2 = "28.12.2011"

Cls
Cursor Off
Locate 1 , 2
   Lcd Vers_1 : Print Vers_1
Locate 2 , 4
   Lcd Vers_2 : Print Vers_2
Wait 2




' Die Adresse meines DS1820 die ich vorher ermittelt habe
'Dsid(1) = &H10 : Dsid(2) = &H45 : Dsid(3) = &HA7 : Dsid(4) = &H4D : _
'Dsid(5) = &H02 : Dsid(6) = &H08 : Dsid(7) = &H00 : Dsid(8) = &H43


'-------------------------------------------'
'     Main                                  '
'-------------------------------------------'
Cls
Cursor Off

Call Sensorsuche



Locate 1 , 1 : Lcd "Aktuelle Temp:" : Print "Aktuelle Temp:"

Do

 ' Alle angeschlossenen DS1820 zum Messen veranlassen
Call Initialisierung
' Den gewünschten Sensor auswählen
 1wverify Id(1)
 ' Kommando READ SCRATCHPAD
 1wwrite &HBE
 Sc(1) = 1wread(9)
 If Sc(9) = Crc8(sc(1) , 8) Then
 T = Makeint(sc(1) , Sc(2))
 T = T * 50
 T = T - 25
 T1 = Sc(8) - Sc(7)
 T1 = T1 * 100
 T1 = T1 / Sc(8)
 T = T + T1
 T = T / 10

 Locate 2 , 1
 Lcd T + Chr(223) : Print T
 Else
 ' Wenn Fehler Scratchpad zur Kontrolle Hexadezimal ausgeben
 Locate 2 , 1
 ' Es passen nur 8 Byte auf das Display
 For I = 1 To 8
 Lcd Hex(sc(i)) : Print Hex(sc(i))
 Next
 End If
 ' Ausgabe alle 0,5 Sekunden
 Waitms 1000
Loop

End


'******************************************************************************'

'-------------------------------------------'
'     Subroutinen                   '
'-------------------------------------------'

' vorhandene DS1820 initialisieren
Sub Initialisierung
   1wreset                                                  ' Initialisierung
   1wwrite &HCC                                             ' Read ROM-Befehl
   1wwrite &H44                                             ' Temperaturmessung anstoßen
   Waitms 800                                               ' warten bis Messung fertig ca 750-800ms
End Sub


' Suche nach angeschlossenen Sensoren - DS18S20
Sub Sensorsuche


   Id(1) = 1wsearchfirst()

   ' Überprüfen ob überhaut ein Gerät vorhanden ist
   If Err = 0 Then
      Do
        ' Ausgabe der ID.
        Cls
        Locate 1 , 1
        For I = 1 To 8
            Lcd Hex(id(i)) ; : Print Hex(id(i));
        Next

        ' Nach weiteren Sensoren suchen
        Id(1) = 1wsearchnext()

      ' suchen, bis kein weiteres Gerät sich mehr meldet
      Loop Until Err = 1
   End If
   Wait 1

   ' Geräteanzahl zählen
   Anzahl = 1wirecount()

   Cls
   Locate 2 , 1
   Lcd "Gefunden: " + Anzahl : Print "Gefunden: " + Anzahl

End Sub
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anzeige






Verfasst am: Heute 07:42:02    Titel: Bauteile finden

Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> BASCOM Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen


Powered by phpBB 2.x © 2001, 2002 phpBB Group

Sie sind Besucher Nr. 1199684
©opyright by Markus Vohburger 2005 All Rights reserved