Hi,
Ich habe ein kleines Problem.
Ich suche einen Befehl für Bascom um ein 8 Bit muster auf 8 pins zu
verteilen und auszugeben(siehe anhang)
Ich steh da auf dem Schauch. Kann mir da einer weiter helfen. Ich
verlange keine kompletten codes, sondern nur einen Tipp / Denkanstoß. :)
mfg
Das mit dem Zähler ist eine gute Idee. Das werde ich ausprobieren.
Da die effektivität des Codes in meinem Fall keine Rolle spielt, habe
ich da trotzdem noch ein anliegen.
Die Byte variable z.b. 00001011 kommt ja schon genau so im m32 an. Der
m32 hat ja nur die Aufgabe diese Byte variable aus einem Speicher
auszulesen und in seinem CASE zu verlagern wo dann Dim "Zaehler/CASE" as
Byte festgelegt wird.
Ist das nicht irgendwie alles doppelt gemoppelt?
Ansonsten vielen dank erstmal für die schnellen antworten.
Michael schrub:
>Der>m32 hat ja nur die Aufgabe diese Byte variable aus einem Speicher>auszulesen und in seinem CASE zu verlagern wo dann Dim "Zaehler/CASE" as>Byte festgelegt wird.
Ägypten, Bahnhof, 8-er Inbus???
Das habe wahrscheinlich nicht nur ich nicht verstanden, sonst hätte
schon
jemand eine vernünftige Antwort gegeben.
MfG Paul
Ich denke, er hat gar nicht begriffen, was das wesentliche in Pauls
Beispiel war. Der Zähler ist dort ja nur eine Zutat, damit sich im
Testprogramm irgendwas tut. Mit der eigentlichen Ausgabe hat er ja
überhaupt nichts zu tun. Die beschränkt sich auf
1
Porta = Horst 'und den Wert gleich ausch am Port A ausgeben
wo ganz einfach der Inhalt der Variablen 'Horst' auf dem Port ausgegeben
wird. Der Rest des Programms ist ja nur schmückendes Beiwerk, damit
'Horst' unterschiedliche Werte annimmt.
Da die eigentliche Ausgabe somit trivial ist, denke ich der Knackpunkt
in seinem Nichtverständnis liegt hier
> ie Byte variable z.b. 00001011 kommt ja schon genau so im m32 an.
Wetten, das da wieder mal irgendwas anderes dahinter steckt?
Vielleicht eine String-Übertragung mittels UART (aber das ist dann schon
wilde Spekulation).
Karl Heinz schrieb:> Vielleicht eine String-Übertragung mittels UART (aber das ist dann schon> wilde Spekulation).
Hi,
Übermittelt wird das ganze mit nem i2c Protokoll, wo der m32 die
Bytevariable aus einer externen Speicheradresse in sich hinein saugt,
und an seinen 8 Pins verteilt. Der m32 soll in diesem i2c transfer in
grunde genommen nur als "vermittler" dienen, da ja der D/A Wandler das
ja nicht kann, eine adresse anzuwählen muss eben der atmega her.
Michael schrieb:> in sich hinein saugt,> und an seinen 8 Pins verteilt.
Ich weiß ja nicht, wie er die Variable "in sich hinein sagugt", aber das
"verteilen" an seine 8 Pins geht einfach mit
1
Porta=$98
2
oder
3
Porta=&b10011000
Die beiden Zeilen sind gleichwertig und geben die Zahl aus deinem Bild
im ersten Beitrag wieder.
Mal doch mal ne Skizze, damit wir verstehen was Du da meinst???
Übermittelt wird das ganze mit nem i2c Protokoll, wo der m32 die
Bytevariable aus einer externen Speicheradresse in sich hinein saugt,
und an seinen 8 Pins verteilt.
Bis hier ok
Der m32 soll in diesem i2c transfer in
grunde genommen nur als "vermittler" dienen, da ja der D/A Wandler das
ja nicht kann,
Ab hier Bahnhof !!!
eine adresse anzuwählen muss eben der atmega her.
Winfried J. schrieb:> Ansonsten ist das Missbrauch eines Atmega32 zum Kröteneimer aka> Datenschaufel.
Der muss ja viele andere sachen auch noch machen, so ist es ja nicht...
:)
hf schrieb:> Ich weiß ja nicht, wie er die Variable "in sich hinein sagugt"
Na im Externen Speicher ist bsp. die Byte variable 11101101 hinterlegt
und kann ausgelesen werden. Der Atmega kontaktiert diesen adressspeicher
und nimmt dieses gesammte eine Byte, so wie es ist, auf.
Michael schrieb:> Der Atmega kontaktiert diesen adressspeicher> und nimmt dieses gesammte eine Byte, so wie es ist, auf.
Ja, und wo ist jetzt das Problem?
Du willst einen Befehl, um die 8 Bits dieses Bytes an deine Pins vom
Port A auszugeben. Ich schrieb ja schon:
Entweder
1
Porta=$98
oder
1
Porta=&b10011000
Damit liegt das Byte an den Pins vom Port A an.
Das hatte ich auch schon ganz oben im 2. Post geschrieben.
Michael schrieb:> Den Post hab ich garnicht gesehen :D> aber danke für die vielen tipps. Ich werde dann weiter Doktor´n
Paul hatte auch schon den gleichen Tipp gegeben. Nur daß er die Variable
eben nicht von irgendwo "gesaugt" hat, sondern einen Zähler von 255 bis
0 benutzt hat, um verschiedene Bitmuster zu erzeugen, die er dann mit
der Variablen "Horst" an den Port A ausgegeben hat.
Da hast du in diesem Thread schon reichlich viele Tipps übersehen ;-)
Eine eigene Frage?
Dieser Thread ist über 12 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.