Bascom Befehl gesucht

Gast #3724104
Lesenswert?

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
Angehängte Dateien:
#3724115
Lesenswert?

1
DDRA=&B11111111 'Port A alle Mann sind Ausgang
2
DIM Horst as Byte 'Auszugebendes Byte
3
DIM Zaehler as Byte 'Variable für Zaehler 
4
Do 
5
  For Zaehler = 255 to 0 'Runterzählen
6
      Horst = Zaehler  'zum Testen die Variable "Horst" mit "Zaehler" füllen
7
      Porta = Horst    'und den Wert gleich ausch am Port A ausgeben
8
  Next Zaehler
9

10
Loop 
11

12
Print "MfG Paul"
13

14
End
Ich hoffe, daß ich Deinen Willen richtig verstanden habe.
Gast #3724952
Lesenswert?

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.
Gast #3725638
Lesenswert?

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
#3725799
Lesenswert?

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).
Gast #3726508
Lesenswert?

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.
Gast #3726537
Lesenswert?

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.
Gast #3726549
Lesenswert?

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.
Gast #3726554
Lesenswert?

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.
Gast #3726559
Lesenswert?

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.
Gast #3726590
Lesenswert?

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 ;-)

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