hi marco
also das was du oben geschrieben hast klappt bei mir leider so nicht nur mit dem code wie ich den oben habe klappt aber halt nur ohne das fusing.
gruß
patrick
Druckbare Version
hi marco
also das was du oben geschrieben hast klappt bei mir leider so nicht nur mit dem code wie ich den oben habe klappt aber halt nur ohne das fusing.
gruß
patrick
hallo,
jetzt klappt es aber die zahl ist jetzt voll lang.
danke für die hilfe
gruß
patrick
Ich kriegs hinten und vorne nich gebacken.. Versuche ich es mit Fusing, spinnt das LCd... zeigt einfach nix..
Aber egal! Der Modulo-Code braucht 14%, der Fusing-Code 21%...
Aber vielen Dank für die Hilfe!!!
Gruss
Mario
ich gebe dir morgen mal meinen code
gruß
patrick
hier der versprochene code.
hoffe das du was damit anfangen kannst.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 K As Word
Dim L As Word
Dim B As Single
Dim C As Single
Dim E As Single
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
Start Adc
Do
Rnlcd_clr
Rnlcd_cursor 1 , 1
Rnlcd "Spg1:"
A = Getadc(1)
B = A * 0.00488
Rnlcd_cursor 1 , 7 'die gemessene Spannung in Volt
Stemp = "" + Str(b)
Rnlcd Stemp
Rnlcd_cr
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
Ok, werds dann mal angucken, vielen Dank!!!
Am LCD hats nen Wackel.. muss den mal suchen und beheben...
Herzliche Grüsse
Mario