Attribute VB_Name = "Modul2"
Option Explicit


'***********************************************************************
'* I2CEPP.BAS Version 2.0
'* Schnittstellendefinition zum Zugriff auf die I2C_DLL.DLL
'* unter VisualBasic und MS Access
'*
'* Letzter Stand : 14.2.2000 , Ingo Gerlach
'* Änderungen:
'*
'***********************************************************************


' I2C Funktionen
'*************************************************************************
'* Funktion : Adr = init_iic(1)
'* Initialisiert den Paralellport , gibt bei angeschlossenem Interface die
'* Parallelport Adresse dezimal zurück, sonst 0.
'*
'*************************************************************************
Declare Function init_iic Lib "I2C_DLL" (ByVal Value As Integer) As Integer

'*************************************************************************
'* Funktion : deinit_iic()
'* "Schliesst" den mit init_iic geöffneten Paraport und stellt das
'* Controlregister wieder her.
'* Rückgabe immer : 0
'*************************************************************************
Declare Function deinit_iic Lib "I2C_DLL" () As Integer

'*************************************************************************
'* Funktion : set_port_delay(pd)
'* Geschwindigkeitsanpassung für verschieden Prozessoren. (i2c Mode)
'* Pentium < 200MHz         : pd = 15
'* Pentium 200Mhz - 400MHz  : pd = 35
'* Pentium >400MHz          : pd = 45
'* Rückgabe immer : 0
'*************************************************************************
Declare Function set_port_delay Lib "I2C_DLL" (ByVal pd As Integer) As Integer


'*************************************************************************
'* Funktion : iic_start()
'* erzeugt Start-Bedingung auf dem I2C-Bus
'* Rückgabe immer : 0
'*************************************************************************
Declare Function iic_start Lib "I2C_DLL" () As Integer

'*************************************************************************
'* Funktion : iic_stop()
'* erzeugt Stop-Bedingung auf dem I2C-Bus
'* Rückgabe immer : 0
'*************************************************************************
Declare Function iic_stop Lib "I2C_DLL" () As Integer

'*************************************************************************
'* Funktion : iic_sende_byte(w)
'* Gibt ein Byte auf den I2C Bus aus
'* Rückgabe immer : 0
'*************************************************************************
Declare Function iic_sende_byte Lib "I2C_DLL" (ByVal w As Integer) As Integer


'*************************************************************************
'* Funktion : byte = iic_lese_byte(ack)
'* Liest ein Byte auf den I2C Bus ein
'* Ist das "ack" ungleich 0, so wird abschliesend ein ACK gesendet */
'* zurueckgegeben wird das empfangene Byte                         */
'* Rückgabe immer : 0
'*************************************************************************
Declare Function iic_lese_byte Lib "I2C_DLL" (ByVal ack As Integer) As Integer


'Paralellport Funktionen
'*************************************************************************
'* Funktion : set_strobe(Value)
'* Setzt StrobeAusgang auf Low Value=0 , oder High Value=1
'* Rückgabe immer : Value
'*************************************************************************
Declare Function set_strobe Lib "I2C_DLL" (ByVal Value As Integer) As Integer


'*************************************************************************
'* Funktion : io_enable(Value)
'* Aktiviert den 74LS245
'* Rückgabe immer : Value
'*************************************************************************
Declare Function io_enable Lib "I2C_DLL" (ByVal Value As Integer) As Integer

'*************************************************************************
'* Funktion : io_disable(Value)
'* Deaktiviert den 74LS245
'* Rückgabe immer : Value
'*************************************************************************
Declare Function io_disable Lib "I2C_DLL" (ByVal Value As Integer) As Integer

'*************************************************************************
'* Funktion : byte_out(Value)
'* Gibt ein Byte auf dem Paralellport aus
'* Rückgabe immer : Value
'*************************************************************************
Declare Function byte_out Lib "I2C_DLL" (ByVal Value As Integer) As Integer

'*************************************************************************
'* Funktion : byte_in(0)
'* Liest ein Byte
'* Rückgabe  : eingelesenes Byte
'*************************************************************************
Declare Function byte_in Lib "I2C_DLL" (ByVal Value As Integer) As Integer


'*************************************************************************
'* Funktion : get_status(0)
'* Liest das ParalellPort StatusByte ein
'* Rückgabe  : eingelesenes Byte
'*************************************************************************
Declare Function get_status Lib "I2C_DLL" (ByVal Value As Integer) As Integer


' Allgemeine Funktionen
'*************************************************************************
'* Funktion : Inp32(PortAdresse)
'* Stellt die "C" Funktion inp unter VB zur Verfügung.
'* Aufruf : byte = Inp32(PortAdresse)
'* Liest direkt vom angegeben Port ein Byte ein
'* Rückgabe immer : Byte vom Port
'*************************************************************************
Declare Function Inp32 Lib "I2C_DLL" (ByVal PortAddress As Integer) As Integer

'*************************************************************************
'* Funktion : Out(PortAdresse,Byte)
'* Stellt die "C" Funktion out unter VB zur Verfügung.
'* Aufruf : byte = Out32(PortAdresse,Byte)
'* Gibt direkt das Byte zum angegebenen Port aus
'* Rückgabe immer : ausgegeben Byte
'*************************************************************************
Declare Function Out32 Lib "I2C_DLL" (ByVal PortAddress As Integer, ByVal Value As Integer) As Integer


