mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lesen von Registern (Bascom)


Autor: DarkFirefighter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wirf einen Blick in BASCOM-Handbuch (ca. 32MB pdf)!
Da gibt es garantiert einen I²C-"Baustein". Vermutlich soar in
Software.

Autor: DarkFirefighter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hab ich schon gesucht aber nichts gefunden was mir weiterhilft

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: DarkFirefighter (Gast)
Datum:
Angehängte Dateien:
  • I2c.bas (203 Bytes, 213 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: DarkFirefighter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: DarkFirefighter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein du hast mich ned adoptiert es war eine normale Frage ich will dich
ned übermäßig beanspruchen. Danke dennoch

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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

...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: DarkFirefighter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.