Kann jemandem mir kurz erklären wie ich ein CMPS03 ( Kompass sensor ) mit PICBasic programieren kann ( also Werte ablesen ) und auf was ich aufpassen muss wenn ich ein 16f877 benutzen.
Danke
Kann jemandem mir kurz erklären wie ich ein CMPS03 ( Kompass sensor ) mit PICBasic programieren kann ( also Werte ablesen ) und auf was ich aufpassen muss wenn ich ein 16f877 benutzen.
Danke
Hi, ich hab das deutsche Datenblatt bzw. Beschreibung dazu erst mal in den Download Bereich gestellt, das hatte noch gefehlt.
Schau mal hier http://www.robot-electronics.co.uk/htm/cmps2axe.htm, vielleicht findest Du da was. Hier sind Beispiele zu vielen Controllern http://www.robot-electronics.co.uk/shop/Examples.htm
Ansonsten kann Jörg sicher noch was zu schreiben, er hat die Module ja im Angebot.
Bild hier
Hallo,
Hmm, und ich kann jetzt zu jedem der gebräuchlichen Controller mit jedem verwendbaren Compiler was schreibenAnsonsten kann Jörg sicher noch was zu schreiben, er hat die Module ja im Angebot.![]()
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
Aber Du bist doch unser Experte!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.Scherz - natürlich kann niemand alle Microcontroller kennen und Beispiele dazu liefern, versteht sich! Die Idee kurze kurze Beispiele zu posten finde ich auch gut. Allerdings wäre es schön wenn die Beispiele auch hier im Forum, zum Beispiel in diesem Software, Algorithmen und KI gepostet werden könnten. Am besten immer gleich mit aussagekräftigem Betreff z.B. "Beispielcode für PIC und CMPS03 ". Dann hätten vielleicht noch mehr User gleich was von. Außerdem wird der Beitrag dann bald auch über die Suchmachinen erreichbar - was wieder einigen hilft.
Gruß Frank
Hi Frank,
bitte nicht flasch verstehen, wenn hier jemand nach einer Variante fragt, wo ich mit einem Codebeispiel helfen kann, dann poste ich das natürlich gern auch hier.
Andererseits macht es keinen Sinn, das Forum mit zig Varianten von dem gleichen Programm vollzuspammen nur für den Fall das es mal interessant sein könnte.
Ich find aber die Idee von Gerry (Devantech) nicht schlecht, auf einer Seite tabellarisch Beispiele zu verlinken. Der Link darauf wurde hier ja auch schon mehrfach genannt. Ich möchte perspektivisch das auch anbieten, schon allein weil ich der deutsche Distributor für die Teile bin und damit auch in der Pflicht stehe.
Viele Grüße
Jörg
Nein Jörg,
hab ich schon richtig aufgefasst. Ich finde es nur sinnvoll es hier ruhig in das Forum Software, Algorithmen und KI zu posten! Das Forum ist ja extra für solche Beispiele gedacht, von daher wäre es kein vollspammen. Und wenn es zuviel Beispiele für den Kompass werden sollten, dann kann ich das immer noch zusammenfassen oder halt unseren Grundlagenbereich etwas ergänzen. Wir haben da ja auch ein Bereich wo Sensoren aufgelistet werden, da könnte ich das schon gut einbauen. Also ruhig Codefetzen posten.
Nicht nur was das Kompassmodul betrifft, als einfache Algorithmen wie Multiplikation, Division von Fließkommazahlen bei unterschiedlichen Microprozessoren u.s.w.! Ich denke irgend jemanden wird es sicher helfen. Gerade Einsteiger suchen immer wieder so was vergebens.
Gruß Frank
Danke fuer die Antwort, habe leider nix gefunden was brauchbar ist. Ich habe alle möglichkeiten der Komandos I2CWRITE un IC2READ von
PICBASIC COMPILER probiert aber ohne Erfolg...probiere jetze der PWM Ausgang auszuwerten ....
ich verstehe es auch nicht![]()
Hallo,
wahrscheinlich gibt es mehrere PICBASIC Varianten, das was ich mir angesehen habe, ist von der Firma Crownhill, nennt sich Proton+ Picbasic und hat kein I2CWRITE und I2CREAD.Ich habe alle möglichkeiten der Komandos I2CWRITE un IC2READ von
PICBASIC COMPILER probiert aber ohne Erfolg...probiere jetze der PWM Ausgang auszuwerten ....
Schreib doch einfach mal, wie du's gemacht hast, dann kann man vielleicht doch helfen.
sicher, nur heißen die überall anders, wollen teilweise die Adressparameter um ein bit verschoben, nutzen mal die Hardware und mal nicht.
Es ist nur eben so, dass man sich in die Entwicklungsumgebung seiner Wahl samt Controller seiner Wahl teilweise ganz schön tief reinknien muss, um die I2C Routinen vernünftig nutzen zu können.
Allerdings gibt es auch Entwicklungsumgebungen, da ist es mit einem einfach i2cread oder wie auch immer die Funktion heißt, getan.
Viele Grüße
Jörg
Lesezeichen