Hallo,

Ansonsten kann Jörg sicher noch was zu schreiben, er hat die Module ja im Angebot.
Hmm, und ich kann jetzt zu jedem der gebräuchlichen Controller mit jedem verwendbaren Compiler was schreiben

Aber ich werd's trotzdem mal machen. Das CMPS03 ist ja relativ einfach anzusteuern, das einzige Problem ist das I2C Interface richtig hinzubekommen. Für den Kompasswert braucht man nur ein 16bit-Register auszulesen.

Dazu habe ich mir mal die Hilfedatei zum PicBasic (Proton+) angesehen und das Beispiel daraus angepasst.
Kann das hier aber weder compilieren noch ausprobieren, noch habe ich irgendwelche Ahnung von Basic, also keine Garantien dass das funzt.
Ich weiß auch nicht, ob der PicBasic das Hardware-I2C des PIC16F877 nutzt, oder ob das softwaremäßig emuliert wird.

DIM VAR1 as WORD ' We'll read 16-bits
DIM Address as WORD ' 16-bit address required
SYMBOL Control 192 ' Adresse CMPS03
Address = 2 ' Read the value at address 2
VAR1 = BUSIN Control , Address ' Read the word from the CMPS

Evtl. muss noch High- und Lowbyte von VAR1 vertauscht werden, keine Ahnung wie man das in Basic macht.
Aber dann sollte das also gehen. Stutzig werde ich nur, wenn ich in der Hilfe solche Bemerkungen stehen, wie:
Because of the subtleties involved in interfacing to some I2C devices, the compiler's standard BUSIN, and BUSOUT commands were found lacking somewhat. Therefore, individual pieces of the I2C protocol may be used in association with the new structure of BUSIN, and BUSOUT
. See relevant sections for more information.

Da ich das aber unmöglich für alle Controller und Compilervarianten machen kann und werde, möchte ich alle bitten, die eine brauchbare Implementierung eines kurzen Testprogramms (Minimalroutinen) für verschiedene Controller haben, mir diese zur Verfügung zu stellen. Ich werde die Programme dann als Beispiele auf meiner Webseite zur allgemeinen Nutzung zur Verfügung stellen.

HTH und Viele Grüße
Jörg