www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MATRIX


Autor: David Blank (Gast)
Datum:

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

Autor: Gralf (Gast)
Datum:

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

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gralf,

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

Grüße
Oliver

Autor: David Blank (Gast)
Datum:

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

Autor: thkaiser (Gast)
Datum:

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

Autor: David Blank (Gast)
Datum:

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

Autor: Gralf (Gast)
Datum:

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

Autor: Oliver (Gast)
Datum:

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

Autor: mikki merten (Gast)
Datum:

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

Autor: David Blank (Gast)
Datum:

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

Autor: mikki merten (Gast)
Datum:

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

Autor: Gralf (Gast)
Datum:

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

Autor: David Blank (Gast)
Datum:

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

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.