Lesen von Registern (Bascom)

Gast #309528
Lesenswert?
• ▲
▼
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ß
Gast #309531
Lesenswert?
• ▲
▼
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...
Gast #309533
Lesenswert?
• ▲
▼
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...
Gast #309534
Lesenswert?
• ▲
▼
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.)
Gast #309535
Lesenswert?
• ▲
▼
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ß
Gast #309536
Lesenswert?
• ▲
▼
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...
#309538
Lesenswert?
• ▲
▼
> 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

...
Gast #309539
Lesenswert?
• ▲
▼
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...
Gast #309540
Lesenswert?
• ▲
▼
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
#309541
Lesenswert?
• ▲
▼
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren