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 | ||
| ||
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: |