Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: DS1631Z unter Bascom Kategorie: Programmierung (von AndiBu - 17.03.2010 8:16)
Als Antwort auf Re: DS1631Z unter Bascom von Stefan - 16.03.2010 13:00
Ich nutze:
C164CI-ControllerBoard, eigenes Board, OSOPT_V2
Hallo Stefan,

da ich auch in bascom programmiere,

habe etwas gesucht auch wenn es nicht in dieses Forum gehört habe ich ein Beispielprogramm gefunden

diese ist zwar für den DS 1624 aber wenn die Adresse gleich sind müsste es auch funktionieren
sonst must du das Datenblatt genauer Studieren..


$regfile = "m88def.dat"             'Define the chip you use
$crystal = 8000000                   'Define speed
$baud = 19200                         'Define UART BAUD rate
'Declare RAM for temperature storage
Dim I2ctemp As Byte                 'Storage for the temperature
'Configure pins we want to use for the I²C bus
Config Scl = Portd.1                 'Is serial clock SCL
Config Sda = Portd.3                 'Is serial data SDA
'Declare constants - I2C chip addresses

Const Ds1624wr = &B10010000           'DS1624 Sensor write
Const Ds1624rd = &B10010001           'DS1624 Sensor read

'This section initializes the DS1624

I2cstart                         'Sends start condition
I2cwbyte Ds1624wr                 'Sends the address
'byte with r/w 0

'Access the CONFIG register (&HAC address byte)
I2cwbyte &HAC
'Set continuous conversion  (&H00 command byte)
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
Print                           'Print empty line


Do
'Get the current temperature
I2cstart
I2cwbyte Ds1624wr
I2cwbyte &HAA     'Read temperature (&HAA command byte)
I2cstart
I2cwbyte Ds1624rd 'The chip will give register contents
'Temperature is stored as 12,5 but the ,5 first
I2crbyte I2ctemp                                      
'So you'll have to read twice... first the ,5
I2crbyte I2ctemp , Nack
'And then the 12... we don't store the ,5                            
I2cstop                                              
                                                              'That's why we read twice.

'We give NACK if the last byte is read
'Finally we print
Print "Temperature: " ; Str(i2ctemp) ; " degrees" ; Chr(13);
Waitms 25
Loop
End

grü�e Andibu

PS aus wekcher Ecke Deutschlands bist du?


> Hallo Andibu,
>
> danke, das hab ich mir gedacht. Ich habe schon in anderen nachgefragt aber irgend wie will oder kann
> keiner. Deshalb habe ich gehofft, das man mir hier evtl. weiter helfen kann.
> Aber tortzdem Danke.
>
> Gruss Stefan
>
> > Hallo Stefan,
> >
> > du bist im total falschem Forum...
> >
> > du must im Bascom oder in einem Atmega-Forum weiter fragen
> >
> > mfg Andibu
> >
> >
> > > Hallo,
> > >
> > > ein kurzes Vorwort: Ich heise Stefan und möchte ein Projekt (LED-Lampensteuerung) verwirklichen. Als Kontroller
> > > habe ich den D071x von Display3000, und schreiben tu ich mit Bascom. Ich habe ein Grundprogramm erhalten und habe
> > > mich soweit eingelernt das ich dieses Prog so einiger massen verstehe. Zu mindest konnte ich es soweit
> > > umschreiben das meine Wünsche abgedeckt sind, bis auf eines. Ich bin absoluter Beginner und werde wohl in der
> > > Zukunft nach fertigstellung meines jetztigen Projekts nie wieder Programmieren müssen. Somit bin ich wirklich
> > > auf eure Hilfe angewiesen um mein letztes Problem zu lösen.
> > >
> > > Mein Problem: ich möchte die Temparatur meines Kühlkörpers erfassen und auf das Display(TFT) ausgeben.
> > > Als Fühler habe ich mich für den DS1631Z entschieden, da ich diesen einfach an die I2C Leitung klemmen kann.
> > > Ich habe jetzt schon einige Tage lang versucht die Beispielprogramme zu verstehen und in mein Programm
> > > einzubauen, leider ohne Erfolg. Scheinbar hat Bascom Probleme mit einigen Befehlen, zb. mit Define kann
> > > Bascom irgend wie nichts anfangen.
> > > Wenn ich das richtig verstehe wird hier eigentlich eine andere Controllereionheit verwendet, ich hoffe
> > > das ich deshalb nicht gesteinigt werde. Desweitern wird hier, denke ich, in C programmiert, damit komme
> > > ich überhaut nicht zu recht.
> > >
> > > Es währe super wenn mir einer bei der Lösung meines Problems helfen würde, Ich weis, da ich Anfänger bin
> > > ist das etwas aufwendiger, aber ich hoffe das dies nicht wirklich abschreckt.
> > >
> > > Im voraus herzlichen Dank,
> > >
> > > Gruss Stefan


    Antwort schreiben


Antworten: