ok
hier der code:
erstmal so denn ich habe eigentlich drei batterie blöcke.Code:' ------------- Hier die üblichen RN-Control Anweisungen -------------- $regfile = "m8def.dat" $hwstack = 32 $framesize = 16 $crystal = 16000000 'Quarzfrequenz $baud = 9600 ' ------------- Ende der üblichen RN-Control Anweisungen -------------- Config Portc = &B11111111 Config Portb = &B11111111 Config Adc = Single , Prescaler = Auto , Reference = Avcc ' Adc einstellen Config Scl = Portc.5 'Ports fuer IIC-Bus Config Sda = Portc.4 Const Rnkeylcd_slaveid_write = &H40 'I2C SlaveAdresse Const Rnkeylcd_slaveid_read = &H41 Dim Stemp As String * 100 Dim Taste As Word Dim A As Word Dim B As Word Dim C As Word Dim W As Long Declare Sub Rnlcd_cursor(byval Spalte As Byte , Byval Zeile As Byte) Declare Sub Rnlcd_clr() Declare Sub Rnlcd(byval Text As String) Declare Sub Rnlcd_cr() Declare Function Rnlcd_getscan() As Word Declare Sub Rnlcd_scanmodus(byval Ein As Byte) 'Tastenscanmodus ein und ausschalten 'Hauptprogramm I2cinit 'Warte bis LCD bereit Rnlcd_clr 'Scanmodus ein Rnlcd_cursor 4 , 1 Rnlcd "Willkommen" Rnlcd_scanmodus 1 Start Adc Do Rnlcd_clr Rnlcd_cursor 1 , 1 Rnlcd "Spg1:" W = Getadc(3) W = 5000 * W W = W / 10246 Rnlcd_cursor 10 , 1 Stemp = "" + Str(w) Rnlcd Stemp Rnlcd_cr If W < 32 Then Rnlcd_cursor 10 , 1 Rnlcd "zu niedrig" End If Waitms 60 Loop End '-------------------------------------------------------------- 'Einige spezielle I2C.Befehle für RN-KeyLCD als Funktion definiert: Sub Rnlcd_cursor(byval Spalte As Byte , Byval Zeile As Byte) 'Cursor setzen Local Befehle As String * 4 Befehle = Chr(27) + Chr(79) + Chr(spalte) + Chr(zeile) I2csend Rnkeylcd_slaveid_write , Befehle , 4 End Sub Sub Rnlcd_clr() 'LCD löschen Local Befehle As String * 2 Befehle = Chr(12) I2csend Rnkeylcd_slaveid_write , Befehle , 1 End Sub Sub Rnlcd_cr() 'LCD Zeilenvorschub Local Befehle As String * 2 Befehle = Chr(13) + Chr(10) I2csend Rnkeylcd_slaveid_write , Befehle , 2 End Sub Sub Rnlcd(byval Text As String) 'Eine Art Print Befehl zum Ausgeben von Text Local Le As Word Le = Len(text) I2csend Rnkeylcd_slaveid_write , Text , Le End Sub Function Rnlcd_getscan() As Word 'Scancode als Word abfragen Local Lscan As Byte Local Hscan As Byte I2cstart I2cwbyte Rnkeylcd_slaveid_read I2crbyte Lscan , Ack I2crbyte Hscan , Nack I2cstop If Hscan.7 = 1 Then 'AScii Modus Rnlcd_getscan = Lscan Else Rnlcd_getscan = Hscan * 256 Rnlcd_getscan = Rnlcd_getscan + Lscan End If End Function Sub Rnlcd_scanmodus(byval Ein As Byte) 'Tastenscanmodus ein und ausschalten Local Befehle As String * 3 Befehle = Chr(27) + Chr(119) + Chr(ein) I2csend Rnkeylcd_slaveid_write , Befehle , 3 End Sub
gruß
patrick







Zitieren

Lesezeichen