De- Encoder für Types-Zustände
Übersicht

DeadDealerBetreff: De- Encoder für Types-Zustände |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin ![]() Ich bastel grad an einem Hardwareprojekt, welches mit Code aus BlitzPlus laufen soll. Hier der Thread dazu: http://www.moddinggods.de/wbb2...6&sid= Das ganze soll Software-mäßig ähnlich laufen, wie die inpout32.dll: Der dll wird z.B. ein Dezimalwert übergeben. Die setzt dann z.B. die Datenausgänge entsprechend. beim Wert 3 Ausgang 1 und 2, bei 255 alle 8 an. Das "CLC-Projekt" besteht aus insgesamt fast 300 LEDs, die man alle einzeln ansteuern kann. jede LED wird in der Software durch ein eigenes Type-Element vertreten. BlitzBasic: [AUSKLAPPEN]
Allein 240 davon bilden einen Leuchtkreis: Bei meinem "Umwandler" soll das genauso laufen wie bei der inpout32.dll, aber ich brauche größere Zahlen. Binärwerte fallen da rauß. Eine 60-stellige Binärzahl ergibt eine viel zu große Dezimalzahl, daher will ich direkt Dezimal- oder Hexadezimalwerte übergeben. Daher soll jede LED einer Farbe einen HEX-Wert bekommen, somit einen ganz individuellen Zahlenwert. will man jetzt mehrere LEDs einschalten, müßte man nur die zugehörigen Werte addieren, und hätte einen einfach zu übergebenen HEX-Wert wie 123DEF bla bla BlitzBasic: [AUSKLAPPEN]
ich bräucht dann aber noch eine Funktion, die mir aus diesem Gesamtwert wieder sagt, welche LEDs an, und ausgeschaltet werden sollen. Als Endausgabe in Form von Hardware wird das ganze über den Parallelport mittels CLOCK und DATA Signal an Schieberegister weitergegeben, die dann die LEDs entsprechend schalten sollen. Ich hoffe das war jetzt nicht zu kompliziert beschrieben. Bin im Moment noch in der Planung und hab nur bischen Code zum testen der Types. |
||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab ich dich richtig verstanden, du übergibst zb den hexwert 173B2B und du willst dann das er dann zb aus der 17 die stunden liest, aus 3B die minuten und 2B die sekunden?
dann versuch mal das : BlitzBasic: [AUSKLAPPEN]
falls ich dich nich richtig verstanden habe, vergiß es einfach .-) |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
DeadDealer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Alfadur hat Folgendes geschrieben: hab ich dich richtig verstanden, du übergibst zb den hexwert 173B2B und du willst dann das er dann zb aus der 17 die stunden liest, aus 3B die minuten und 2B die sekunden?
dann versuch mal das : BlitzBasic: [AUSKLAPPEN]
falls ich dich nich richtig verstanden habe, vergiß es einfach ![]() nicht ganz so. das was ich brauche, ist noch banaler. Die Zeitberechnung steht schon, nur ergibt sich in der Ansteuerung der LEDs ein großes Problem. Ich zeig mal ein anderes Pic: ![]() soweit sogut, die Zeit wird angezeigt. die weißen LEDs sind nur als Stundensegmente da, aber der im Moment dazu gehörende Code ist einfach sch*** ... ach seht es euch selbst an ![]() BlitzBasic: [AUSKLAPPEN]
Die einzelne Zeile unter If showTime_toggle=1 Then ist mir ein Dorn im Auge! Beim Durchlaufen kontrolliert die Schleife jede einzelne LED, ob sie an sein soll. Funktioniert, aber totaler Code-Salat *g* Machen wir mal ein einfaches Dezimal-Rechenbeispiel, wie es aussehen sollte: BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du wirst da nicht um Binäre Schalter herumkommen, denn dein obiges Beispiel kann ja so nicht funktionieren.
Wenn du "3" hast, schaltet er nun nummer 3 an? oder nummer 1+ nummer 2? Daher musst du wohl 2 Ints als flags nehmen, dann hättest du 64 bit Speicherbandbreite. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
DeadDealer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BladeRunner hat Folgendes geschrieben: Du wirst da nicht um Binäre Schalter herumkommen, denn dein obiges Beispiel kann ja so nicht funktionieren.
Wenn du "3" hast, schaltet er nun nummer 3 an? oder nummer 1+ nummer 2? Daher musst du wohl 2 Ints als flags nehmen, dann hättest du 64 bit Speicherbandbreite. Stimmt das habe ich oben nicht beachtet. Dann werd ich das wohl mit binären Werten machen müßen ![]() |
||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ichs richtig verstanden habe:
deine uhr soll direkt über eine schnittstelle durch den PC geschaltet werden. allerdings willst du keine schnittstelle mit 60 bit od. mehr (verständlich) ich würds so machen: einfach getaktet die information für jedes led schicken welches eingeschaltet (bzw. ausgeschaltet) werden soll z.b.: die inneren leds sind v. 1-60, die grünen v. 61-120 die blauen v. 121-180 u. die weissen v. 181-240. Also schickts du 40 u. das 40ste rote led gehts an. bzw.: um es wieder zu löschen schickst du 40+512. [edit] wenn du das ordentlich schnell taktest, sollte das ganze auch flüssig aussehen. [edit] damit kämst du mit einer 10(16) :/ bit schnittstelle aus. hoffe ich hab deine absichten nicht missverstanden. mfg stfighter |
||
Denken hilft! |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde es eher anders machen, wo nur eine 8 Bit Schnittstelle wie LPT ausreicht.
Die ersten 2 Bit geben den Typ der Synchronisation an. 00 -> Sekunden 01 -> Minute 10 -> Stunde 11 -> Unbenutzt Die restlichen 6 Bit geben dann den jeweiligen Wert an. 2^6 = 64. Sekunden und Minuten gehen nur von 0 bis 59, Stunden nur von 0 bis 23(bzw. bei der Anzeige bis 11). Reicht also völlig aus. Blitz müsste halt jede Sekunde 00Sekunde, jede Minute 01Minute und jede Stunde 10Stunde versenden. mfg olli |
||
vertex.dreamfall.at | GitHub |
- Zuletzt bearbeitet von Vertex am Mo, Apr 18, 2005 0:37, insgesamt einmal bearbeitet
DeadDealer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist, daß die Hardware nicht nur die Uhrzeit anzeigen soll ![]() Später soll man auch Spiele oder ne Pegelanzeige für Winamp haben, da klappt das nicht mehr mit so einfachen Mitteln. Da muß man jede einzelne LED kontrollieren können |
||
DeadDealer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BladeRunner hat Folgendes geschrieben: Du wirst da nicht um Binäre Schalter herumkommen, denn dein obiges Beispiel kann ja so nicht funktionieren.
Wenn du "3" hast, schaltet er nun nummer 3 an? oder nummer 1+ nummer 2? Daher musst du wohl 2 Ints als flags nehmen, dann hättest du 64 bit Speicherbandbreite. Hab das so umgesetzt: BlitzBasic: [AUSKLAPPEN]
dann könnt ich mit ner for-schleife und Mid() die einzelnen bit auslesen und übertragen. Sowas hab ich mir vorgestellt, danke ![]() Mal sehen wie das in der Praxis umzusetzen ist, aber wird schon passen oder passend gemacht ![]() |
||
Absoluter Beginner |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wird das sowas hier? ![]() ![]() Zitat: dann könnt ich mit ner for-schleife und Mid() die einzelnen bit auslesen und übertragen
es geht schneller,aber dafür nur mit 32bit bit = wert and (1 shl stelle) stelle binär gesehen , also ganz rechts 0te stelle, 2. von rechts 1. stelle usw |
||
Error Inside! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group