Forum: Mikrocontroller und Digitale Elektronik BASCOM I2C Routinen und DS1621


von derOJ (Gast)


Lesenswert?

Hallo.
Ich habe schon einige Erfahrung mit Mikrocontr. und auch mit dem I2C.
Hatte vorher alles in Assambler gemacht. Habe aber jetz ein Controller
mit Display, und da sind schon Routinen für die Ansteuerung des
Displays bei. Damit ich nicht alle Routinen in Assambler umsetzten
muss, dachte ich mir ich mach den Rest einfach auch in Basic.
hab dann in der Hilfe dieses Beispiel gefunden und wollte das
übernehmen

ich habe den DS1621 und die Adressbits alle auf HIGH(5V)
Const Ds1624wr = &B10011110
Const Ds1624rd = &B10011111

I2cstart                           'Sends start condition
I2cwbyte Ds1624wr                  'Sends the address

I2cwbyte &HAC
I2cwbyte &H00
I2cstop                            'Sends stop condition
Waitms 25         'We have to wait some time after a stop

I2cstart
I2cwbyte Ds1624wr

'Start conversion (&HEE command byte)
I2cwbyte &HEE
I2cstop
Waitms 25
'End of initialization

Read_temp:

   'Get the current temperature
I2cstart
I2cwbyte Ds1624wr
I2cwbyte &HAA      'Read temperature (&HAA command byte)
I2cstart
I2cwbyte Ds1624rd  'The chip will give register contents
I2crbyte Dstemp_high
I2crbyte Dstemp_low , Nack
I2cstop
Waitms 500
Ds_string = Str(dstemp_high)

Goto Read_temp ' schleife

Bekomme aber imer nur eine 0 angezeigt.
Ich lese auch einen MAXX6675 aus. mit der SHIFTIN-Routine. klappt
wunderbar. Nur I2C nicht. Pull-Ups hab ich an SDA und SCL 4,7k gegen
5V. Benutze dieselbe Hardware wie auch vorher beim Assembler Prog

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.