Re: Hex Werte Kategorie: Programmierung Basic (von muefra - 21.01.2008 18:21) | ||
Als Antwort auf Re: Hex Werte von PeterS - 20.01.2008 23:28 | ||
| ||
Hallo Peter, nicht ganz, im Bild siehst du das Clock-Register vom DS 1629 (bei mir geht das Bild nicht, hier als LINK) (Link geht auch nicht dann hier direkt www.muefranet.de/pics/DS1629_clock.jpg) Ich muss die Werte für die Zeit umwandeln! z.B. nach sekunde 9 kommte sekunde 16 was 10 ist, ist ja laut Bild auch ok so Hab mir folgendes einfallen lassen: ..... I2C_Start() 'Start I2C_Write(&H9F) 'Command write Config "read" Tmin=I2C_Read_ACK() 'Read msb mit Ack Th=I2C_Read_ACK() 'Read msb mit Ack Tday=I2C_Read_ACK() 'Read msb mit Ack Tdate=I2C_Read_ACK() 'Read msb mit Ack Tmonth=I2C_Read_ACK() 'Read msb mit Ack Tyear=I2C_Read_NACK() 'Read msb mit Ack I2C_Stop() 'Stop Tmin = rechen(Tmin) Th = rechen(Th) Tdate = rechen(Tdate) Tmonth = rechen(Tmonth) Tyear = rechen(Tyear) ..... Sub rechen(TAUSCH As Integer) As Integer If TAUSCH > 73 Then TAUSCH = TAUSCH - 6 End If If TAUSCH > 57 Then TAUSCH = TAUSCH - 6 End If If TAUSCH > 41 Then TAUSCH = TAUSCH - 6 End If If TAUSCH > 25 Then TAUSCH = TAUSCH - 6 End If If TAUSCH > 9 Then TAUSCH = TAUSCH - 6 End If Return TAUSCH End Sub ..... vielleicht geht es auch noch einfacher, ich bin halt kein Profi :-) Gru� Frank > Ach so, Du möchtest von BCD nach binär wandeln. Wie wärs mit: > > int bcd, bin; > bin= (bcd>>4) * 10 + (bcd & 0xf); > > > Gruss Peter > > > Danke Peter für die Antwort, aber damit kann ich den Wert nur im Debugmodus Ausgeben. > > Ich möchte den Wert aber weiterverarbeiten. In dem Moment wo du geantwortet hast ist mir die Idee > > gekommen, es mit einer verschachtelten IF Reihe zu lösen. Das Bau ich dann in eine Funktion ein und > > kannn es mehrfach nutzen. > > > > Danke Frank > > > > > Hi, > > > > > > wenn der Wert offenbar BCD kodiert ist, dann kann man mit Msg_WriteHex() den Wert ausgeben. > > > > > > Gruss Peter > > > > > > > Hallo, > > > > > > > > ich habe ein Programm zur Temperaturmessung mit dem DS 1629 geschrieben, funzt soweit auch nur > > > > beim Auslesen der Zeit komm ich nicht weiter. > > > > Mit dem Befehl Tmin=I2C_Read_ACK() lese ich die Zeit aus, nur: > > > > > > > > BIT0 bis BIT3 -> einer Minuten > > > > BIT4 bis BIT6 -> zehner Minuten > > > > > > > > Mit dem Befehl Str_WriteFloat(Tmin,1,Aus1,0) Kommt bei (min=59) 89 raus, was Hex 59 ist (0101 1001)! > > > > > > > > Wie kann ich die Hex-Zahl in einen Text umwandel, ohne das erst hex nach Dezimal und dann Text1 > > > > > > > > Oder hab ich hier einen Denkfehler? > > > > > > > > Danke Frank | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum