Forum: Mikrocontroller und Digitale Elektronik MATRIX


von David Blank (Gast)


Lesenswert?

gitb es wahrheitstabellen in asm files ?
geht sowas ?

z.B. so    PD7 PD8 PD9
       1 = 1   0   1
       2 = 0   1   1
usw.

und das ich hachher z.B.
out 1
machen kann ?

von Gralf (Gast)


Lesenswert?

Hi!

Du kannst in assembler Variablen vordefinieren. Das geht glaube ich über 
equ oder set oder so ähnlich. Dahinter dann einen beliebigen Namen und 
den Wert. Über die genaue Syntax kann ich leider nichts sagen, findet 
man aber bestimmt im Datenblatt des µC. Der Unterschied zwischen equ und 
set ist glaube ich, daß man bei set-definitionen später noch im 
Programmablauf den Wert ändern kann.

Wenn ich hier totale Scheiße erzähle, korrigiert mich bitte.

von Oliver (Gast)


Lesenswert?

Hallo Gralf,

ich bin beeindruckt, was Du so aus dem Kaffeesatz lesen kannst!

Grüße
Oliver

von David Blank (Gast)


Lesenswert?

es geht nämlich darum das ich an einem 2313
LEDs als Matric an PB und PD hab....
PB sinns 3 anschlüsse, PD 5
also 15 LEDs....jetzt will ich ihm einfach sagen können mach die LED1 
und die 2 an...
dann will ich damit noch effekte machen...also einmal hoch einmal 
runter, z.B. mit einer addition...

ich wollte mir das vereinfachen und nicht jedesmal die PB und PD 
reihenfolge ausgeben, einen wert...

vielen dank ich versuchs aber auch mit equ.

von thkaiser (Gast)


Lesenswert?

Man kann auch 8 Portpins gleichzeitig beschreiben - nur so zur Info, und 
PD8 und PD9 gibts meines Wissens net, soferns um Atmels geht. Setze Dich 
mal mit dem Begriff "BIT" und "BYTE" und deren Beziehung auseinander.
Tipp: Tabelle im Flash oder EEPROM mit den entsprechenden LED-Mustern 
anlegen (wären bei 15 LEDs immer 2 Bytes bei einem unbenutzen Bit), dann 
könnte man jedes Muster über einen Pointer (Vektor, Speicherstelle, wie 
auch immer man das nennen möchte) ansprechen und so verschiedene Muster 
nacheinander abrufen. Sind für jedes Muster zwei Portzugriffe.

von David Blank (Gast)


Lesenswert?

PD8 PD9 waren ja nur beispiele...
ich hätt aucg sageb können PD1

vielen dank für eure antworten , werd mich mal damit befassen
MANN ! das kann doch nicht soooo schwer sein !

von Gralf (Gast)


Lesenswert?

@Oliver
>ich bin beeindruckt, was Du so aus dem Kaffeesatz lesen kannst!

Was genau meinst Du denn damit? War das so falsch, was ich da von mir 
gegeben habe? Dann korrigiere mich bitte. Möchte ja auch noch was 
lernen.

von Oliver (Gast)


Lesenswert?

@Gralf
Nein, ist schon ok. Nur muß man bei vielen Beiträgen (der erste dieses 
Fadens) erst einmal ein "Häh?" von sich geben und sich fragen, was hat 
der Autor wohl damit gemeint. Wurde schon öfters hier mit Glaskugellesen 
betitelt. Ich habe da nur Bahnhof verstanden.

Grüße
Oliver

von mikki merten (Gast)


Lesenswert?

@david
Zuweisungen mit .equ Direktiven helfen dir bei der Lösung deines 
Problems ja nicht unbedingt weiter. Auf der einen Seite hast du eine 3 x 
5 LED-Matrix also insgesamt 15 LEDs. Als Ansteuerung kommt ja hier nur 
Multiplex in Betracht wenn du alle 2^15 (32768) Zustände die diese LED 
Matrix annehmen kann darstellen willst. Daher formuliere evtl. deine 
Frage neu, denn ich glaube kaum das du irgendwelche tausende Zeilen 
lange Tabellen aufstellen willst.

von David Blank (Gast)


Lesenswert?

Ich bräuchte theoretisch nur 15 Zeilen...
Ich will ihm doch blos sagen das wenn ich 1 sage
die erste LEd leuchten soll....
2 die 2.

nur hab ich das jetzt mal ausprobiert, ich kann der 1 keine sachen 
zuweisen ich könnte höchstens sagen LED1
nur damit hätte ich nachher probleme bei mennen effekten...
d.H. ich könnte keine addition machen

ich muss jetzt halt jedes mal PortD und PortB
ausgeben, weil die dinger so verschaltet sind...
bis jetzt sieht das bis jetzt für die LED15 aus:

......................
out PortB,1101111
out PortD,00011
......................

am liebsten würde ich ihm das in einer zeile, mit einer zahl 
ausdrücken...

geht das überhaupt ?

Ich denke die ganze zeit an eine art wahrjeitstabelle
aber vieleicht bin ich (da ich neu in dem bereich bin )
blind und seh ne einfachere methode nicht...


...............................................
    PD0 PD1 PD2 PD3 PD4
PB3 L1  L2  L3  L4  L5
PB4 L6  L7  L8  L9  L10
PB5 L11 L12 L13 L14 L15
...............................................

von mikki merten (Gast)


Lesenswert?

Das mit den 15(16 alle LED aus) Zeilen trifft nur zu wenn du immer nur 
eine LED ansteuern willst.

Wie ist dann aber deie folgende Aussage zu verstehen:

also 15 LEDs....jetzt will ich ihm einfach sagen können mach die LED1 
und die 2 an...
dann will ich damit noch effekte machen...also einmal hoch einmal 
runter, z.B. mit einer addition...

dann hast du ja (2 Zustände ^ 15 LED) = 32768 Möglichkeiten. Die sind 
bei deiner Verschaltung nur im Multiplex-Betrieb mit 3 oder 5 Time-Slots 
darstellbar.

von Gralf (Gast)


Lesenswert?

@David Blank

Du könntest eine Procedur schreiben, der Du über eine Variable/Register 
die Nummer der LED übergibts. Innerhalb der Procedur kannst Du dann mit 
bedingten Verzweigungen zu den einzelnen Ausgabebefehlen springen.

Mit der Addition sehe ich das noch nicht. Wie willst Du denn 
unterscheiden zwischen den beiden Zuständen LED3 und LED1+LED2? Beide 
male würde eine "3" übergeben.

von David Blank (Gast)


Lesenswert?

also soll ich die codierung mit PortB und D so lassen...
nuja, ich hab schon davon geträumt...
aber nicht die lösung.

mal sehen wie ich das mach !

vielen dank für eure hilfe, für weitere vorschläge bin ich immer zu 
haben !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.