TWIoutP-Problem

Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

TWIoutP-Problem

 · 
Posted: 05.01.2020 - 14:35  ·  #1
Hallo Zusammen,

ich habe folgendes Programm:
Code

Const
  SSeq : Array[0..3] of Byte = $AA,$55,$A5,$5A;
.
.
.
TWIoutP($3E,SSeq[0],@SSeq[1],3];

Zur Erinnerung die Syntax:
Function TWIoutP(SlaveAdr : byte; Command : byte; src : pointer; len : word) : boolean;

Meine Überlegung: Als Command wird Byte0 von SSeq gesendet und als Daten Pointer ab SSeq[1] 3 Bytes.

Festgestellt: Es wird nur Byte0 gesendet und danach 3x $00.

Wo könnte das Problem sein?

Ich will einfach nur 4 Bytes senden und ein Command bräuchte ich eigentlich garnicht.

Gruss
Harry

..... achja ist nur ein einfacher Mega8@1MHz
Attachments
TWIoutP-Problem
Filename: DS1Z_QuickPrint3.png
Filesize: 58.67 KB
Title:
Download counter: 121
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: TWIoutP-Problem

 · 
Posted: 05.01.2020 - 15:56  ·  #2
Hallo Harry,

kurze Frage nebenbei was ist das für eine Version vom RIGOL / Gerätetyp.
Meine Firmware hat das mit dem Decodieren Clk/Data noch nicht.
Vielleicht muss ich mal ein Update machen.

Thorsten
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: TWIoutP-Problem

 · 
Posted: 05.01.2020 - 17:24  ·  #3
Hi Thorsten,

das ist ein DSO1104Z Softwarestand vor einem Jahr. Genaue Version muß ich nachschauen.

Gruss
Harry

.... decodieren ist eine Option, die du extra kaufen mußt. Wenn das Oszi neu ist, kann man alle Optionen für (glaub ich) 20 Stunden so benutzen. Danach nicht mehr.
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: TWIoutP-Problem

 · 
Posted: 06.01.2020 - 09:08  ·  #4
Hallo Harry,
hätte auch gedacht, daß Dein Programm so funktioniert.
Bleibt vielleicht erstmal, $AA als Command und das Array [0..2] =$55,$A5,$5A zu senden
TWIOut($AA,SSeq);

golf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: TWIoutP-Problem

 · 
Posted: 06.01.2020 - 09:27  ·  #5
Hallo Golf,

ich kann nicht auf zweimal senden, da dann wieder die Adresse dabei ist und letztendlich immer noch ein Byte fehlt.
Der Workaround ist übrigens die Konstante in eine Variable umzukopieren und diese dann zu verwenden.
Ich denke TWIoutP mag keinen Pointer auf Konstanten. Gehört das so?

Das vollständige Programm besteht nicht nur aus einem eindimensionalen, sondern aus einem zweidimensionalen Array [0..15,0..3] of Byte.

Gruss
Harry

@Thorsten: https://www.rigolna.com/firmware/
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: TWIoutP-Problem

 · 
Posted: 06.01.2020 - 12:18  ·  #6
Quote by Harry

Hallo Golf,

ich kann nicht auf zweimal senden, da dann wieder die Adresse dabei ist und letztendlich immer noch ein Byte fehlt.
Der Workaround ist übrigens die Konstante in eine Variable umzukopieren und diese dann zu verwenden.
Ich denke TWIoutP mag keinen Pointer auf Konstanten. Gehört das so?

Das vollständige Programm besteht nicht nur aus einem eindimensionalen, sondern aus einem zweidimensionalen Array [0..15,0..3] of Byte.

Gruss
Harry

@Thorsten: https://www.rigolna.com/firmware/


Hallo Harry,

yepp, habe mir gestern schon die neue Firmware gezogen :-)

Kann es sein, dass Du den Optimizer nutzt? Wenn Du die Konstante nur über den Pointer nutzt könnte er dies so nicht erkennen und die komplette Konstante evtl. entfernen.

So ein Verhalten habe ich auch bei einem Compiler für ein SPS-System (CodeSys). Du musst dann einmal diese Konstante aufrufen bzw. normal ohne Pointer verwenden, damit der Compiler diese Konstante übernimmt.
Ich weiss nicht wie der AVRco dies umsetzt.

Versuche mal in Deinem Code irgendwo etwa folgendes:

Code
if SSeq[0] = SSeq[0] then 
 //mache nichts oder sonstwas
endif;


Gruß
Thorsten
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: TWIoutP-Problem

 · 
Posted: 06.01.2020 - 12:57  ·  #7
Hallo Harry, das war ein Schnellschuß, da hat auch die Adresse gefehlt bei mir.
Du hast recht. Wenn man die Konstanten in ein Var-Aarray kopiert hat, sollte es auch mit TWIOutP funktionieren.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: TWIoutP-Problem

 · 
Posted: 06.01.2020 - 14:24  ·  #8
Hallo,

herzlichen Dank :) .... mit dem umkopieren kann ich leben und ich benutze keinen Optimizer, da das Prog compiliert grad mal 1kB hat. Nur ein einfacher I2C-Sender um einen Tuner zu konfigurieren.

Aber vielleicht kann Rolf was dazu sagen, ob das so gewollt ist bei Konstanten?

@Thorsten: installiert auch? Ich hab ein Gerücht gehört, daß das ganze Decodier-Gedöns jetzt standardmäßig immer frei geschaltet sein soll. Stimmt das?

Gruss
Harry
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 16 · Cache Hits: 15   138   153 · Page-Gen-Time: 0.033944s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI