1WVERIFY/de

From MCS Wiki AVR
< 1WVERIFY(Difference between revisions)
Jump to: navigation, search
m (Beschreibung)
(Siehe auch)
 
(2 intermediate revisions by one user not shown)
Line 53: Line 53:
 
= <span class="f_Header">ASM</span> =
 
= <span class="f_Header">ASM</span> =
  
The following asm routines are called from mcs.lib.
+
Folgende Assembler-Routinen werden von der mcs.lib aufgerufen.
  
_1wire_Search_Next&nbsp;: (calls _1WIRE, _ADJUST_PIN , _ADJUST_BIT_ADDRESS)
+
_1wire_Search_Next&nbsp;: (ruft auf _1WIRE, _ADJUST_PIN , _ADJUST_BIT_ADDRESS)
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Line 61: Line 61:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">See also</span> =
+
= <span class="f_Header">Siehe auch</span> =
  
[[1WWRITE]]&nbsp;,&nbsp;[[1WRESET]]&nbsp;,&nbsp;[[1WREAD|1WREAD&nbsp;]]&nbsp;,&nbsp;[[1WSEARCHFIRST]]&nbsp;,&nbsp;[[1WSEARCHNEXT]]&nbsp; ,&nbsp;[[1WIRECOUNT]]&nbsp;,&nbsp;[[Using the 1 WIRE protocol|Using the 1wire protocol]]
+
[[CONFIG 1WIRE]] , [[1WWRITE]]&nbsp;,&nbsp;[[1WRESET]]&nbsp;,&nbsp;[[1WREAD|1WREAD&nbsp;]]&nbsp;,&nbsp;[[1WSEARCHFIRST]]&nbsp;,&nbsp;[[1WSEARCHNEXT]]&nbsp; ,&nbsp;[[1WIRECOUNT]]&nbsp;,&nbsp;[[Using the 1 WIRE protocol|Using the 1wire protocol]]
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>

Latest revision as of 19:30, 1 March 2013

Contents

Funktion

Überprüft, ob eine ID am 1-wire-Bus vorhanden ist.

 

 

Syntax

1WVERIFY ar(1)

1WVERIFY ar(1) , port, pin

 

 

Beschreibung

Ar(1)

Ein Byte-Array, welches die ID enthält, die überprüft werden soll.

port

Der Name des PORT PINx Registers wie z.B. PINB oder PIND.

pin

Die Pin-Nummer im Bereich von 0-7. Darf eine numerische Konstante oder Variable sein.

 

Der Rückgabewert der Variable ERR ist 0 wenn die ID auf dem Bus gefunden wurde, ansonsten ist ERR = 1.

 

 

ASM

Folgende Assembler-Routinen werden von der mcs.lib aufgerufen.

_1wire_Search_Next : (ruft auf _1WIRE, _ADJUST_PIN , _ADJUST_BIT_ADDRESS)

 

 

Siehe auch

CONFIG 1WIRE , 1WWRITE , 1WRESET , 1WREAD  , 1WSEARCHFIRST , 1WSEARCHNEXT  , 1WIRECOUNT , Using the 1wire protocol

 

 

Beispiel


'--------------------------------------------------------------------------------
'name : 1wireSearch.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : demonstrates 1wsearch
'micro : Mega48
'suited for demo : yes
'commercial addon needed : no
'--------------------------------------------------------------------------------
 
 
$regfile = "m48def.dat"
$crystal = 4000000
 
 
$hwstack = 32 'Grundeinstellung 32 für den Hardware Stack
$swstack = 10 'Grundeinstellung 10 für den Software Stack
$framesize = 40 'Grundeinstellung 40 für den Frame Space
 
 
Config 1wire = Portb.0 'Angabe des Pins
'Am STK200 muß Jumper B.0 gesteckt sein
 
'Folgende Bytes werden von der Scan-Routine benötigt
'___1w_bitstorage , Byte zur Speicherung von Bits :
' lastdeviceflag Bit 0
' id_bit Bit 1
' cmp_id_bit Bit 2
' search_dir Bit 3
'___1wid_bit_number, Byte
'___1wlast_zero, Byte
'___1wlast_discrepancy , Byte
'___1wire_data , String * 7 (8 Bytes)
 
 
'[DIM benutzte Variablen]
'Mindestens 8 Bytes zur Speicherung der ID werden gebraucht
Dim Reg_no(8) As Byte
 
'ein Schleifenzähler und ein Word/Integer für die Anzahl der IDs am Bus
Dim I As Byte , W As Word
 
 
'Suchen des ersten Teilnehmers am Bus
Reg_no(1) = 1wsearchfirst()
 
 
For I = 1 To 8 'Ausgabe der ID im Hex-Format
 Print Hex(reg_no(i));
Next
Print
 
 
Do
'Suche nach anderen Teilmnehmern
Reg_no(1) = 1wsearchnext()
For I = 1 To 8
 Print Hex(reg_no(i));
Next
Print
Loop Until Err = 1 'Schleife bis zum ersten Fehler am Bus
 
 
'Wenn ERR = 1 ist, wurde kein weiterer Teilnehmer gefunden
'Man kann auch die Anzahl der Teilnehmer am Bus zählen lassen
W = 1wirecount()
'Es ist WICHTIG zu beachten, daß die 1wirecount-Function ein Word/Integer zurückgibt
'Die Ergebnis-Variable muß vom Typ Word oder Integer sein
'Man kann sie natürlich in eine Byte-oder Long-Variable übertragen
Print W
 
 
'als Bonus die nächste Routine :
' zuerst das Array mit einer existierenden ID füllen
Reg_no(1) = 1wsearchfirst()
' um ein Byte zu ändern und das Err-Flag zu testen, nächste Zeile auskommentieren
'Reg_no(1) = 2
'jetzt eine Prüfung, ob die ID existiert
1wverify Reg_no(1)
Print Err
'err =1 wenn die ID, welche mit Reg_no() übergeben wurde, nicht existiert
'optionaler Aufruf mit Angabe der Pinnummer: 1wverify reg_no(1),pinb,1
 
 
'wie bei den anderen 1-Wire Befehlen/Funktionen, wird die Angabe von Port und Pinnummer unterstützt
'W = 1wirecount(pinb , 1) 'als Beispiel am Pin PINB.1
End

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language