so ich habe mir hier aus dem forum ein codeschnippsel für das display von pollin mit der bezeichnung "HLM8070" besorgt und etwas umgestrickt. Funktioniert auch wunderbar doch jetzt würde ich das *bas programm dazu gerne als lib verwenden um dann z.B. dieses programm bei bedarf in andere programme einbauen zu können ähnlich wie die anderen displays per LCD-anweisung wie die in Bascom schon enthalten ist kann mir irgendwer erklären wie das geht ????

bin allerdings weder in c noch in asm eine leuchte auch meine Bascom kentnisse bewegen sich eher auf anfänger niveau

hier erstmal der code den ich verwende damit auch andere die das teil haben es mit einfachen mitteln einsetzen können

Code:
$regfile = "m32def.dat"
$crystal = 16000000

Declare Sub Lcd_m50530_init()                               'declare the SUB program
Declare Sub Lcd_m50530_chr(ch As Byte)
Declare Sub Lcd_m50530_command(command As Byte)
Declare Sub Lcd_m50530_gotoxy(lcd_x As Byte , Lcd_y As Byte)
Declare Sub Lcd_m50530_clear()
Declare Sub Lcd_m50530_enable
Declare Sub Lcd_m50530_print()

Lcd_m50530 Alias Portc
Config Lcd_m50530 = Output
_oc1 Alias 4
_oc2 Alias 5
_ex Alias 6

Dim T As Byte                                               ' Zählschleife
Dim Lcd_temp As Byte                                        ' Temp im Unterprogramm
Dim Lcd_parameter As Byte                                   ' wird an LCD gesendet
Dim _x As Byte                                              ' Cursor x Position
Dim _y As Byte                                              ' Cursor y Position
Dim Text As String * 16                                     ' String zur textübergabe
Dim Xstring As String * 16
Dim Xchar As Byte
Dim I As Byte

'-------------------------
'      Begin Hauptprogramm
'-------------------------
_x = 5 : _y = 2
Call Lcd_m50530_init
Do
 For I = 1 To 100
 Text = Str(i)
 Call Lcd_m50530_gotoxy(_x , _y)
 Call Lcd_m50530_print()
 Waitms 200
 If I = 100 Then Call Lcd_m50530_clear
 Next
Loop

'-------------------------
'      End Hauptprogramm
'-------------------------
'----------------------------------------
Sub Lcd_m50530_init
'----------------------------------------

  Lcd_parameter = $d8                                       'set function mode (SF) 0b11011000
  Call Lcd_m50530_command(lcd_parameter)                    '4bit-Modus einstellen  11 -4/8bit-FONT-2xDUTY-2xRAM

  Lcd_parameter = $50                                       'set entry mode (SE)    0b01010000
  Call Lcd_m50530_command(lcd_parameter)                    'Cursor selbst setzen

  Lcd_parameter = $33                                       'set display mode (SD)  0b00110011
  Call Lcd_m50530_command(lcd_parameter)                    'Display ein, Cursor nicht anzeigen

  Lcd_parameter = $01                                       ' 0b00000001    Display löschen
  Call Lcd_m50530_command(lcd_parameter)
  Waitms 2
End Sub

'----------------------------------------
Sub Lcd_m50530_chr(ch As Byte)
'----------------------------------------
  Lcd_temp = Ch
  Shift Lcd_temp , Right , 4
  Set Lcd_temp._oc2
  Lcd_m50530 = Lcd_temp
  Call Lcd_m50530_enable

  Lcd_temp = Ch And $0f
  Set Lcd_temp._oc2
  Lcd_m50530 = Lcd_temp
  Call Lcd_m50530_enable
  Waitus 20
End Sub

'---------------------------------------
Sub Lcd_m50530_command(command As Byte)
'---------------------------------------
  Lcd_temp = Command
  Shift Lcd_temp , Right , 4
  Reset Lcd_temp._oc1
  Reset Lcd_temp._oc2
  Lcd_m50530 = Lcd_temp
  Call Lcd_m50530_enable

  Lcd_temp = Command And $0f
  Reset Lcd_temp._oc1
  Reset Lcd_temp._oc2
  Lcd_m50530 = Lcd_temp
  Call Lcd_m50530_enable
  Waitus 20
End Sub
'-----------------------------------------------------
Sub Lcd_m50530_gotoxy(lcd_x As Byte , Lcd_y As Byte)
'-----------------------------------------------------

  Select Case Lcd_y
    Case 1 : Lcd_parameter = $00
    Case 2 : Lcd_parameter = $40
    Case 3 : Lcd_parameter = $80
    Case 4 : Lcd_parameter = $c0
    Case Else : Lcd_parameter = $00
  End Select

  Lcd_parameter = Lcd_parameter + Lcd_x
  Decr Lcd_parameter
  Lcd_temp = Lcd_parameter
  Shift Lcd_temp , Right , 4
  Set Lcd_temp._oc1
  Set Lcd_temp._oc2
  Lcd_m50530 = Lcd_temp
  Call Lcd_m50530_enable

  Lcd_temp = Lcd_parameter And $0f
  Set Lcd_temp._oc1
  Set Lcd_temp._oc2
  Lcd_m50530 = Lcd_temp
  Call Lcd_m50530_enable
  Waitus 20
End Sub

'----------------------------------------
Sub Lcd_m50530_clear
'----------------------------------------
  Lcd_parameter = $01                                       ' 0b00000001    Display löschen
  Call Lcd_m50530_command(lcd_parameter)
  Waitms 2
End Sub

'----------------------------------------
Sub Lcd_m50530_enable
'----------------------------------------
  Set Lcd_m50530._ex
  Waitus 1
  Reset Lcd_m50530._ex
End Sub

'----------------------------------------
Sub Lcd_m50530_print()
'----------------------------------------
  For T = 1 To Len(text)
       Xstring = Mid(text , T , 1)
       Xchar = Asc(xstring)
    Call Lcd_m50530_chr(xchar)
 Next

End Sub