Hallo, ich hab da ein Problem mit dem Sensor TPA 81. Wie kann ich mit I²C die Register auslesen? Ich hab schon ein Datenblatt http://www.roboter-teile.de/datasheets/tpa81.pdf gefunden weiß aber leider ned wie ich sie auslesen soll. Wäre dankbar wenn ihr weiter wüsstet. Ich programmiere mit Bascom. Gruß
Wirf einen Blick in BASCOM-Handbuch (ca. 32MB pdf)! Da gibt es garantiert einen I²C-"Baustein". Vermutlich soar in Software.
Komisch... Ich habe I2CINIT, I2CRECEIVE und I2CSEND gefunden. Damit sollte es "einwandfrei"* funktionieren. Im Datenblatt des Sensors ist das auch komplett (sogar in Deutsch) beschrieben. Wenn du uns an deinem Problem bzw. an dem, was du bis jetzt zur Lösung dieser Aufgabe "programmiert" hast, teilhaben lassen würdest (sprich: Quellcode), könnte man dir vielleicht helfen. Solltest du nach einer fertigen Lösung fragen, ist der Thread für mich an dieser Stelle beendet... *Soweit BASCOM einwandfrei ist...
Mit I2CRecive hab ich es probiert entweder ich hab was übersehen oder stell mich zu blöd. Im Anhang schick ich dir den bisherigen Code. Danke für deine Hilfe MfG
Du wirst dem Sensor mit I2CSEND noch sagen müssen, was du von ihm wissen willst. Wirf doch mal ein Blick in das ("completet") Datenblatt deines Controllers. Dort ist die TWI-Schnittstelle beschrieben, und auch der typische Ablauf einer I2C-Kommunikation. Sonst finden sich solche Beschreibungen bestimmt auch noch auf der Roboter-Netz-Seite... Im Regelfall schickt man dem Slave die Registernummer, die man auslesen will bzw. erst einen Lesebefehl und dann die Registernummer, und empfängt dann die entsprechenden Daten. Bei I2CRECEIVE kann man auch noch die Anzahl der zu empfangenen Bytes angeben...
Oder man benutzt I2CRECEIVE entsprechend dem zweiten Teil des Beispielprogramms zum Befehl... Am besten guckst du dir an, wie I2C funktioniert (wurde mal von Philips entwickelt, ATMEL nennt es TWI.)
Ok danke ich werd es mal so versuchen. Würdest du mir deine eMail-Addresse geben, da ich jetz dann auf einen Geburtstag muss und nicht mehr die Zeit hab es zu testen, damit ich wenn du nichts dagegen hast dich noch etwas fragen kann falls ich Probleme hab. Meine eMail-Addresse ist vbfirefighter@web.de Schönen abend noch Gruß
Hab ich dich jetzt etwa adoptiert? Ich wollte dir eigentlich nur ein paar Tipps zur Selbsthilfe geben... Von BASCOM habe ich sogut wie keine Ahnung... Ich müsste auch erst irendwo nachgucken...
Nein du hast mich ned adoptiert es war eine normale Frage ich will dich ned übermäßig beanspruchen. Danke dennoch
> Wirf doch mal ein Blick in das ("completet") Datenblatt deines > Controllers. Dort ist die TWI-Schnittstelle beschrieben, und auch > der typische Ablauf einer I2C-Kommunikation. @Rahul: Ich habe den Eindruck, dass viele Leute BASCOM benutzen, weil sie genau das nicht machen wollen (ins Datenblatt des Controllers oder der Peripherie schaun), und nicht, weil BASCOM so toll ist. > Hab ich dich jetzt etwa adoptiert? > Ich wollte dir eigentlich nur ein paar Tipps zur Selbsthilfe > geben... Hilfe zur Selbsthilfe nennt man hier "auf halbem Wege verhungern lassen". Siehe: http://www.mikrocontroller.net/forum/read-7-287619.html ...
http://www.mikrocontroller.net/forum/read-7-287619.html Der Thread ist aber gut gewachsen... Da ich in Bezug auf BAsSCOM auch nur "gefährliches" Halbwissen habe, sehe ich keine Probleme darin, anderen zu helfen. Wenn mich ein Thema interessiert (mit I²C habe ich noch nie etwas gemacht), dann engagiere ich mich auch in einem Thread - Ob da dann auch etwas für den Thread-Starter bei rauskommt ist mir dann eigentlich egal, solange ich was davon habe- (egoistisch, oder? ;) Mir ist aufgefallen, dass ich schon länger keine Frage mehr hatte, für die es sich gelohnt hätte, einen Thread zu starten (sollte ich vielleicht doch mal machen, weil ich mit sonem Netzwerkzeug Probleme habe). Meistens haben sich die Probleme dadurch gelöst, dass ich mir noch mal das Datenblatt angeguckt habe, mit einem Kollegen drüber gesprochen habe (und dann vielleicht von selbst auf die Lösung kam) oder einfach eine Nacht drüber geschlafen habe. Manchmal bringt es auch was, wenn ich was komplett anderes mache (ich mache sogar Kaffee in der Firma, oder bestücke meine Platinen zuende) - Spazierengehen hilft auch...Manchmal muß man sich sogar über Kollegen aufregen, wobei das nicht unbedingt der Sache dienlich ist... In irgendeinem anderen Thread habe ich schon geschrieben, dass es nicht auf die Programmiersprache ankommt, sondern, wie man an Lösung des Problems angeht und vor allem wieviel Interesse an der Lösung dieses Problems besteht. [OT; ist das bis jetzt nicht alles OT gewesen?!] momentan habe ich in der Firma das Problem, dass ich einen Sensor über RS485 (halbduplex)ansprechen muß. Mit dem STK500 und seinen 3,686MHz klappt die Kommiúnikation problemlos. Mit der fertigen Platine, die mit 12,288MHz läuft, weil kein anderer Quarz vorhanden ist (ich wollte nicht noch ein neues Bauteil einführen), geht es nicht. Scheinbar ist mein Board zu schnell für den Sensor...bloß der ist jetzt in einer anderen Abteilung für andere Tests...Das Problem beschäftigt mich; ich kann es aber nicht lösen... [/OT] In einen Thread ist irgendwann absehbar, ob sich der Fragesteller für den Weg oder nur die fertige Lösung interessiert. Dann ist der Thread für mich uninteressant... TWI muß ich mir halt auch noch mal angucken, um "mitfachsimpeln" zu können...
Also ich wollte von dir keine Fertige Lösung! Mir ist shcon klar dass ihr ned die Zeit habt das zu schrieben. Meine Frage war (für mich) eigentlich sehr simpel und zwar wie ich aus den verschiedenen Registern lesen kann. den Rest bau ich mir dann schon slebst zusammen. Nur welche befehle muss ich schicken, um eben aus jenen Registern lesen zu können. Du musst mich deswegen ned adoptieren. Ich bin dir schon dankbar für das was du mir geschrieben ahst aber da ich eben mit den Befehlen von BASCOM ned soviel anfangen kann weiß ich nicht wie ich jetz direckt in ein bestimmtes Register komm. MfG
Hallo "DunklerFeuerFechter"... Zu dem TPA81 (den ich nicht kenne) gibt es doch sicherlich auch ein Datenblatt. Dort ist vermutlich das Protokoll beschrieben, darin müsstest du also alle Angaben finden. Dazu gehört z.B., mit welcher Adresse das Teil angesprochen werden muss und welche Steuerbefehle geschickt werden müssen, um bestimmte Register auszulesen. Falls es dir für den Anfang zu kompliziert ist, dann experimentiere doch erstmal mit einem kleinen seriellen EEPROM (I²C). Damit lernst du erstmal den Umgang mit I²C kennen, kannst etwas üben (Modifikation irgendwelcher Beispielprogramme) und verstehst dann auch das Datenblatt des von dir gewünschten Teils. Löse dein Problem Schritt für Schritt. "Du kannst einen Berg nicht mit einem Schritt besteigen" (Zitat von Peter, das den Nagel auf den Kopf trifft...) Übrigens: Falls du dich beleidigt gefühlt hast, dann zeigt das, dass das Geschriebene auf dich zutrifft. Falls es nicht auf dich zutrifft, dann brauchst du dich auch nicht angesprochen fühlen und musst auch nicht den Beleidigten spielen. Viel Erfolg... ...HanneS...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.