Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Frage zum I2C-Bus mit DS1631 und PCF8754 Kategorie: Verschiedenes (von Jens - 23.06.2008 11:07)
 Als Antwort auf Frage zum I2C-Bus mit DS1631 und PCF8754 von Jann-Henrik Pflüger - 22.06.2008 22:00
Jens nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, B-Control
Hallo Janny!

> Ein embedded Linux server der über seine Com-Schnittstelle mit einer OpenMicro spricht und ihr im Grunde die Schaltaufträge übergibt.

Die RS232 der OM ist nicht interrupt gesteuert. Dass heißt, die OM muss mittels INPUT oder GET auf den Empfang von der RS232 warten. Während die OM wartet wird allerdings kein Basic Programm abgearbeitet.

Es gibt allerdings ein Assembler-Modul für den Interruptgesteuerten Empfang an der RS232. Wie dieses Modul funktioniert musst Du aber der Hilfe entnehmen, damit habe ich noch nicht gearbeitet. Zumindest musst Du TXD und RXD der RS232 dann auftrennen, also Du kannst dann nicht mehr die „Einfache Programmierschaltung“ verwenden.

> Jetzt habe ich aktuell ein frag zur i2c lib:
> könnte dieser Code funktionieren (nur auszug):

> i2c_start
> i2c_write(adresse eines DS1631)
> temp = i2c_read()
> i2c_stop

> bekomme ich hier in die Variable temp tatsächlich die Temperatur zurück?

Nein, so funktioniert es nicht. Du musst die Temperaturmessung erst einleiten, dann eine weile warten, die Temperaturmessung stoppen und dann erst kannst Du die Temperatur auslesen. Wie die Ansteuerung genau zu erfolgen hat musst Du dem Datenblatt des DS1631 entnehmen. Oder es findet sich jemand der schon einmal einen DS1631 mit der OM angesteuert hat und er stellt Dir dann den Code zur Verfügung...

> i2c_start
> i2c_write(adresse eines PCF8754)
> byte = i2c_read()
> i2c_stop

> bekomme ich hier in die Variable byte tatsächlich das byte des PCF8754 zurück?

Nein, auch hier funktioniert es anders.

i2c_start
i2c_write(adresse eines PCF8574)
i2c_start
i2c_write(adresse+1 eines PCF8574)
byte = i2c_read()
i2c_stop

Es gibt aber auch bei den Downloads ein „Extended Ports für die OM“ Modul. Dass Modul brauchst Du nur einbinden und es übernimmt die Ansteuerung von schreiben und lesen...

LG Jens

 Antwort schreiben

Bisherige Antworten: