i2c_lpt - Perl extension fuer diverse i2c devices. Version 0.1 / 2.12.2000
use i2c_lpt; *** Allgemeine I²C-Routinen *** i2c_lpt::init_iic(int PortNr) i2c_lpt::deinit_iic(void) i2c_lpt::set_port_delay(int delay) i2c_lpt::read_sda(void) i2c_lpt::read_scl(void) i2c_lpt::iic_start(void) i2c_lpt::iic_stop(void) i2c_lpt::send_byte(int byte) i2c_lpt::read_byte(int ack) *** 8-BIT I/O (nur Parport) *** i2c_lpt::set_strobe(int status) i2c_lpt::byte_out(int byte_out) i2c_lpt::byte_in(int byte_in) i2c_lpt::get_status(int status) i2c_lpt::io_disable(void) i2c_lpt::io_enable(void) *** PCF8574 *** i2c_lpt::pcf8574_const() i2c_lpt::iic_tx_pcf8574(int Data, int Adress_Offset) i2c_lpt::iic_rx_pcf8574(int Adress_Offset) *** PCF8591 *** i2c_lpt::pcf8591_const() i2c_lpt::create8591() i2c_lpt::pcf8591_init($ptr,$pcf8591_mode,$pcf8591_ref_UB) i2c_lpt::pcf8591_readchan($ptr,$Kanal) i2c_lpt::pcf8591_read4chan($ptr); i2c_lpt::pcf8591_aout($ptr,$Kanal) i2c_lpt::pcf8591_setda($ptr,$ubval); i2c_lpt::delete8591($ptr) *** SDA3302 *** i2c_lpt::sda3302_const() i2c_lpt::create3302() i2c_lpt::sda3302_init($ptr3302,$sda3302_mode) i2c_lpt::sda3302_calc($ptr3302,$frequenz) i2c_lpt::sda3302_send($ptr3302,$sda3302_adr_off) i2c_lpt::delete3302($ptr3302) *** TSA6057 *** i2c_lpt::tsa6057_const() i2c_lpt::tsa6057() i2c_lpt::tsa6057_init($ptr,Raster,Mode) i2c_lpt::tsa6057_calc($ptr,$frequenz) i2c_lpt::tsa6057_send($ptr,$adr_off) i2c_lpt::delete6057($ptr) *** LCD-Funktionen (PCF8574) *** i2c_lpt::lcd_init() i2c_lpt::lcd_backlight($On_Off) i2c_lpt::lcd_instr($Kommando) i2c_lpt::lcd_get_adress() i2c_lpt::lcd_wchar(ord(H)) i2c_lpt::lcd_write_str($string) i2c_lpt::lcd_rchar($ram_adresse) i2c_lpt::lcd_read_str($len,$ram_adresse)
*** Allgemeine I²C-Routinen *** $ret=i2c_lpt::init_iic(int PortNr) ret gibt Portnummer (dezimal z.B. 888) zurück, wenn Interface gefunden wird. PortNr = 0 , es wird automatisch gesucht PortNr 1-3 , es wird nur an dem angegebenen Port gesucht. i2c_lpt::deinit_iic(void) Der mit init_iic() geöffnete Port wird wieder geschlossen. i2c_lpt::set_port_delay(int delay) Setzt eine gewisse Verzoegerung für die Portzugriffe. Der Wert 'delay' muss groesser 0 sein. Sinnvolle Werte liegen zwischen 5 - 25 . i2c_lpt::read_sda(void) Gibt den Status high/low der SDA-Leitung zurueck. i2c_lpt::read_scl(void) Gibt den Status high/low der SCL-Leitung zurueck. i2c_lpt::iic_start(void) Initiert den I2C-Bus i2c_lpt::iic_stop(void) Schickt Stop-Bedingung auf den Bus. i2c_lpt::send_byte(int byte) Sendet das Byte 'byte' i2c_lpt::read_byte(int ack) Lies ein Byte , gibt , wenn 'ack' <> 0 ist, ein ACK aus. *** 8 BIT I/O - Routinen *** i2c_lpt::set_strobe(int status) Setz die Strobleitung auf Status (0|1) i2c_lpt::byte_out(int byte_out) Gibt das Byte byte_out aus. i2c_lpt::byte_in(int byte_in) Liest das Byte byte_in i2c_lpt::get_status(int status) i2c_lpt::io_disable(void) i2c_lpt::io_enable(void) *** PCF8574 - Routinen *** ($tx_8574,$rx_8574) = i2c_lpt::pcf8574_const(); Gibt die def. Konstanten zurück. i2c_lpt::iic_tx_pcf8574(int Data, int Adress_Offset) Sendet das Byte 'Data' zum PCF8574. Ist die Adresse <> 112 , muss Adresss_Offste entsprechend gesetz werden. Sonst Adress_Offset=0. i2c_lpt::iic_rx_pcf8574(int Adress_Offset) Liest den Eingang aus. # Ein Byte einlesen $r=i2c_lpt::iic_rx_pcf8574(0); print "PCF8574: Value $r \n\n"; Ist die Adresse <> 113 , muss Adresss_Offste entsprechend gesetz werden. Sonst Adress_Offset=0. *** PCF8591 *** i2c_lpt::pcf8591_const() ($pcf8591_adr, $pcf8591_rx, $pcf8591_c4s, $pcf8591_c3d, $pcf8591_c2s, $pcf8591_c2d) = i2c_lpt::pcf8591_const(); Gibt die def. Konstanten zurück. i2c_lpt::create8591() Erzeugt einen Pointer auf Datenstruktur. $ptr =i2c_lpt::create8591(); i2c_lpt::pcf8591_init($ptr,$pcf8591_mode,$pcf8591_ref_UB); Initialisiert den Wandler. Mode : 0 = 4x Eing. , 16 3x Dif, 32 2 xSE 2xDif, 48 2x Dif i2c_lpt::pcf8591_readchan($ptr,$Kanal) $chan = i2c_lpt::pcf8591_readchan($ptr,$Kanal); Liest den Wert des $Kanal aus. @Kanaele = i2c_lpt::pcf8591_read4chan($ptr); Liest Alle 4 Kanaele aus. Rueckgabe Array. $chan = i2c_lpt::pcf8591_aout($ptr,$Kanal) Berechnet für den $Kanal den Wert in Volt. i2c_lpt::pcf8591_setda($ptr,$ubval); Setzt den Ausgang des DA Wandlers auf $ubval. i2c_lpt::delete8591($ptr) Loescht den Pointer. *** SDA3302 - Routinen *** i2c_lpt::sda3302_const() ($sda3302_adr, $sda3302_step, $sda3302_zf, $sda3302_PLL, $sda3302_DIV) = i2c_lpt::sda3302_const(); Gibt die def. Konstanten zurück. i2c_lpt::create3302() Erzeugt einen Pointer auf Datenstruktur. $ptr3302=i2c_lpt::create3302(); i2c_lpt::sda3302_init($ptr3302,$sda3302_mode) Initialisiert die PLL. 'mode' legt Fest, ob der SDA3302 als Teiler (238) oder als PLL (206) arbeitet. i2c_lpt::sda3302_calc($ptr3302,$frequenz) Berechnet fuer $frequenz die Teiler. i2c_lpt::sda3302_send($ptr3302,$adr_offset) Sendet die Teiler zur PLL. i2c_lpt::delete3302($ptr3302) Loescht den Pointer. *** TSA6057 - Routinen *** i2c_lpt::tsa6057_const() ($tsa6057_adr, $tsa6057_am, $tsa6057_fm, $tsa6057_R01, $tsa6057_R10, $tsa6057_R25) = i2c_lpt::tsa6057_const(); Gibt die def. Konstanten zurück. i2c_lpt::create6057() Erzeugt einen Pointer auf Datenstruktur. $ptr=i2c_lpt::create6057(); i2c_lpt::tsa6057_init($ptr,$RASTER,$MODE); Initialisiert die PLL. Raster legt das Ratser Fest. Mode AM | FM. $teiler = i2c_lpt::tsa6057_calc($ptr,$frequenz); Berechnet fuer $frequenz die Teiler. i2c_lpt::tsa6057_send($ptr,$adr_offset); Sendet die Teiler zur PLL. adr_offset 0 | 2 i2c_lpt::delete6057($ptr) Loescht den Pointer. *** LCD-Funktionen (PCF8574) *** LCD Befehle Cursor Off = 0x0c Cursor On = 0x0e Cursor home = 0x02 Cursor blink = 0x0f Display Clear = 0x01 Display Off = 0x08 Adresse setz. = 0x80 i2c_lpt::lcd_init(); Initialisiert das Display. $bl = i2c_lpt::lcd_backlight($on_off); Schaltet, sofern vorhanden, die Beleuchtung des Displays ein. $on_off = 1 -> Licht an. $on_off = 0 -> Licht aus. i2c_lpt::lcd_instr($cmd); Schickt das Kommando $cmd an das Display. Display Off = 0x08 i2c_ser::lcd_instr(0x08); $lcdadr=i2c_lpt::lcd_get_adress(); Liest die Adresse Cursorposition. i2c_lpt::lcd_wchar(ord(H)); Schreibt ein einzelnes Zeichen an die aktuelle Adresse. i2c_lpt::lcd_write_str("Hallo Display"); Schreibt einen String in das Display. $rchar=chr(i2c_lpt::lcd_rchar($Adresse)); Liest das Zeichen an $Adresse. $rchar=i2c_lpt::lcd_read_str($len,$adr); Liest einen String mit Länge $len ab Position $Adresse aus dem Display.
perl(1).
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in 'I²C-Routinen'. Assuming CP1252
To install i2c_lpt, copy and paste the appropriate command in to your terminal.
cpanm
cpanm i2c_lpt
CPAN shell
perl -MCPAN -e shell install i2c_lpt
For more information on module installation, please visit the detailed CPAN module installation guide.