Was meinst du mit "dimensionieren"? Du kannst nur einen konfigurieren.Zitat von hardware.bas
Du kannst doch in jedem 1wire Befehl einen Port und einen Pin angeben.Zitat von hardware.bas
Sorry, ich hatte das Thema schon mal aufgegriffen, warscheinlich jedoch in
einem thematisch ungünstigen Thread. Also, weiss jemand, ob es
möglich ist, mehrere 1wire-Port am AVR zu nutzen. Man kann zwar
mehr dimensionieren, die Ausleseprozedur bezieht sich jedoch nicht
auf einen speziellen Port. Vielen Dank für ein Feedback. VG Micha
Was meinst du mit "dimensionieren"? Du kannst nur einen konfigurieren.Zitat von hardware.bas
Du kannst doch in jedem 1wire Befehl einen Port und einen Pin angeben.Zitat von hardware.bas
Natürlich konfigurieren ist gemeint. Ich brauche 3 Stück 1wire-Ports. Ohne
beim Compilieren zu meckern kann ich Diese konfigurieren. Nun mein
Problem: Wie weise ich die Ausleseprozedur den einzelnen Ports zu?
Wenn das nicht klappen sollte, kann man ev. vor dem Ausleseprozedere
den einzelnen Port konfigurieren, so dass immer der zuletzt konfigurierte
Port dann massgebend ist? VG Micha
Nochmal:
var2 = 1WIRECOUNT( port , pin)Zitat von for_ro
var2 = 1WSEARCHFIRST( port , pin)
var2 = 1WSEARCHNEXT( port , pin)
var2 = 1WREAD( bytes , port , pin)
1WRESET , PORT , PIN
1WWRITE var1 , bytes , port , pin
Die einzige Ausnahme scheint mir 1wverify zu sein. Hatte ich noch gar nicht bemerkt.
Edit: Bascom kompiliert dies jedenfalls, ob's funktioniert müsste man ausprobieren
1wverify var1 , port , pin
Vielen Dank. In der kommenden Woche werd ich das ausprobieren können.
VG Micha
Vielen Dank, for_ro, für Deine Hilfe. Ähnliches hatte ich dann später im
BASCOM-Lehrbuch gefunden. Ich habe nun heute diese Lösung gebraucht,
leider ohne Ergebnis. 3 Stück DS18S20 sind sternförmig verkabelt, also
bedingt durch die Kabeltopologie nicht als 1WIRE-BUS betreibbar. Alle
3 Sensoren funktionieren auch beim einzeln auslesen (Umflashen des
Programmes auf die configurierten Ports / Alle werden mit +5V, GND und
DATA, also 3-adrig betrieben). In meinem Falle an PORTD.5, PORTD.6 und
PORTD.7, welche in dem Versuch alle als 1wire konfiguriert wurde.
Benutzt wurde dann die bekannte Prozedur der Einzelmessung,
wobei an die 1wire-Kommandos folgendes rangehägt wurde:
1w"kommando", pind , x (x der Pin). Leider ist keine
Kompilierung möglich. Obwohl ich nicht verlangen will, dass ich eine
vorgekaute Lösung für diesen speziellen Fall bekomme, wäre ich
jedoch für ein Beispiel dazu dankbar. VG Micha
Wie sieht denn der Code aus, den du nicht kompilieren kannst?
Leider steht der Rechner und das Gerät mit der Elektronik ung. 70km
auf der Baustelle. Ich kann von dort jedoch ins Netz.
UNGEFÄHR!!! sieht der Code ao aus, als Auszug:
Config 1wire = Portd.5
Config 1wire = Portd.6
Config 1wire = Portd.7
Dim Sp(9) As Byte
for x = 5 to 7
1wreset , pind , x
1wwrite &HCC , pind, x
1wwrite &H44 , pind , x
Waitms 512
1wreset , pind , x
1wwrite &HCC , pind , x
1wwrite &HBE . pind , x
Sp(1) = 1wread(9 , pind ,x)
"Array auslesen und drucken ok"
Wait 1
next
---------------------------------------------
Wenns funktioniert, wird natürlich der
Anwendung angepasst. VG Micha
Mach es mal so:
'Config 1wire = Portd.5 'brauchst du nicht
'Config 1wire = Portd.6 'mehrere geht eh nicht
'Config 1wire = Portd.7
Dim S_p(9) As Byte 'SP ist ein reserviertes Wort
Dim X As Byte
for x = 5 to 7
1wreset Pind , X 'Fehler in der Hilfe, Komma hinter 1wreset muss weg
1wwrite &HCC , 1 , Pind , X 'Anzahl Bytes muss angegeben werden
1wwrite &H44 , 1 ,pind , x
Waitms 512
1wreset Pind , X
1wwrite &HCC , 1 ,pind , x
1wwrite &HBE , 1 , Pind , X
S_p(1) = 1wread(9 , Pind , X)
'"Array auslesen und drucken ok"
Wait 1
Next
Vielen Dank, ich werde es morgen probieren. Folgende Fragen hab ich
gleich, um dann ev. eigenständig weiterzukommen:
- Es reicht also. EINEN Port zu configurieren, den Letzten??
- Was bedeutet die 1 hinter den 1wire-Befehlen
- Musste bei Anzahl der Bytes bein DS1820 dann nicht "9" stehen?
Das funktioniert bei mir:
- Beim array hab ich eine andere Variable, fällt mir ein, die funktioniert
- Das mit SP habe ich auch festgestellt, seit ich BASCOM-Vollversion hab
Ich halte Euch auf dem Laufenden, wies ausging. VG Micha
Lesezeichen