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 ?
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.
Hallo Gralf, ich bin beeindruckt, was Du so aus dem Kaffeesatz lesen kannst! Grüße Oliver
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.
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.
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 !
@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.
@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
@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.
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 ...............................................
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.
@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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.