Ich möchte in Bascom die daten der TWI UHR DS1307 von Dezimal in Hexadezimal umrechnen.
Es existiert auch bereits ein programm, nur das ist sicherlich auch einfacher zu lösen mit zb nem "sub" oder so.
Momentan werden alle daten einzeln umgewandelt.
Habe auch bereits mehrere versuche gemacht aber außer der aktuellen version läuft einfach nix.

Code:
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600

Declare Sub I2cfach()
Dim Uhrsec As Byte
Dim Uhrmin As Byte
Dim Uhrstu As Byte
Dim Wotag As Byte
Dim Tag As Byte
Dim Monat As Byte
Dim Jahr As Byte

Dim Erg1 As Byte                                            ' Stunden zuweißen
Dim Erg1a As Byte
Dim Erg2 As Byte
Dim Erg2a As Byte
Dim Rst1 As Byte
Dim Rst2 As Byte

Dim Erg3 As Byte                                            ' Minuten zuweißen
Dim Erg3a As Byte
Dim Erg4 As Byte
Dim Erg4a As Byte
Dim Rst3 As Byte
Dim Rst4 As Byte

Dim Erg5 As Byte                                            ' Secunden zuweißen
Dim Erg5a As Byte
Dim Erg6 As Byte
Dim Erg6a As Byte
Dim Rst5 As Byte
Dim Rst6 As Byte

Dim Erg7 As Byte                                            ' Wochentag zuweißen
Dim Erg7a As Byte
Dim Erg8 As Byte
Dim Erg8a As Byte
Dim Rst7 As Byte
Dim Rst8 As Byte

Dim Erg9 As Byte                                            ' Tag zuweißen
Dim Erg9a As Byte
Dim Erg10 As Byte
Dim Erg10a As Byte
Dim Rst9 As Byte
Dim Rst10 As Byte

Dim Erg11 As Byte                                           ' Monat zuweißen
Dim Erg11a As Byte
Dim Erg12 As Byte
Dim Erg12a As Byte
Dim Rst11 As Byte
Dim Rst12 As Byte

Dim Erg13 As Byte                                           ' Jahr zuweißen
Dim Erg13a As Byte
Dim Erg14 As Byte
Dim Erg14a As Byte
Dim Rst13 As Byte
Dim Rst14 As Byte

Config Sda = Portc.4
Config Scl = Portc.5
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Deflcdchar 0 , 28 , 20 , 28 , 32 , 32 , 32 , 32 , 32

Cls
Cursor Off
I2cinit
Do
I2cfach

   Locate 1 , 1
   Lcd Rst2 ; Rst1 ; ":"
   Locate 1 , 4
   Lcd Rst4 ; Rst3 ; ":"
   Locate 1 , 7
   Lcd Rst6 ; Rst5 ; "        "
   Locate 2 , 1
   If Rst7 = 1 Then
   Lcd "Mo"
   End If
   If Rst7 = 2 Then
   Lcd "Di"
   End If
   If Rst7 = 3 Then
   Lcd "Mi"
   End If
   If Rst7 = 4 Then
   Lcd "Do"
   End If
   If Rst7 = 5 Then
   Lcd "Fr"
   End If
   If Rst7 = 6 Then
   Lcd "Sa"
   End If
   If Rst7 = 7 Then
   Lcd "So"
   End If
   Lcd "  "
   Locate 2 , 3
   Lcd "," ; Rst10 ; Rst9 ; "."
   Locate 2 , 7
   Lcd Rst12 ; Rst11 ; "."
   Locate 2 , 10
   Lcd "20" ; Rst14 ; Rst13 ; "   "

Waitms 150
Loop

Sub I2cfach()

   I2cstart
   I2cwbyte &B11010000                                      ' <-- Schreibe Adresse des DS1307 (UHR)
   I2cwbyte &B00000000                                      ' <-- Ab Anfang lesen
   I2cstart
   I2cwbyte &B11010001                                      ' <-- Lese Adresse des DS1307 (UHR)
   I2crbyte Uhrsec , Ack
   I2crbyte Uhrmin , Ack
   I2crbyte Uhrstu , Ack
   I2crbyte Wotag , Ack
   I2crbyte Tag , Ack
   I2crbyte Monat , Ack
   I2crbyte Jahr , Nack
   I2cstop

   Erg1 = Uhrstu / 16                                       ' Stunden umwnadeln
   Erg1a = Erg1 * 16
   Rst1 = Uhrstu - Erg1a
   Erg2 = Erg1 / 16
   Erg2a = Erg2 * 16
   Rst2 = Erg1 - Erg2a

   Erg3 = Uhrmin / 16                                       ' Minuten umwnadeln
   Erg3a = Erg3 * 16
   Rst3 = Uhrmin - Erg3a
   Erg4 = Erg3 / 16
   Erg4a = Erg4 * 16
   Rst4 = Erg3 - Erg4a

   Erg5 = Uhrsec / 16                                       ' Secunden umwnadeln
   Erg5a = Erg5 * 16
   Rst5 = Uhrsec - Erg5a
   Erg6 = Erg5 / 16
   Erg6a = Erg6 * 16
   Rst6 = Erg5 - Erg6a

   Erg7 = Wotag / 16                                        ' Wochentag umwnadeln
   Erg7a = Erg7 * 16
   Rst7 = Wotag - Erg7a
   Erg8 = Erg7 / 16
   Erg8a = Erg8 * 16
   Rst8 = Erg7 - Erg8a

   Erg9 = Tag / 16                                          ' Tag umwnadeln
   Erg9a = Erg8 * 16
   Rst9 = Tag - Erg9a
   Erg10 = Erg8 / 16
   Erg10a = Erg10 * 16
   Rst10 = Erg9 - Erg10a

   Erg11 = Monat / 16                                       ' Monat umwnadeln
   Erg11a = Erg11 * 16
   Rst11 = Monat - Erg11a
   Erg12 = Erg11 / 16
   Erg12a = Erg12 * 16
   Rst12 = Erg11 - Erg12a

   Erg13 = Jahr / 16                                        ' Jahr umwnadeln
   Erg13a = Erg13 * 16
   Rst13 = Jahr - Erg13a
   Erg14 = Erg13 / 16
   Erg14a = Erg14 * 16
   Rst14 = Erg13 - Erg14a

End Sub
Schonmal danke im vorraus