Forum: Mikrocontroller und Digitale Elektronik 8 Tasten einlesen (Möglichkeiten)


von TS (Gast)


Lesenswert?

Hi,

dieser Beitrag bezieht sich auf einen falsch benannten:

Beitrag "8-bit Binary to BCD converter"

Der Ersteller möchte eigentlich folgendes:

Beitrag "Re: 8-bit Binary to BCD converter"

Beitrag "Re: 8-bit Binary to BCD converter"

Es wurden folgende Lösungen angeboten:

Beitrag "Re: 8-bit Binary to BCD converter"

Hier sollte weiter diskutiert werden.

TS

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Hier also nochmal mein Vorschlag mit der Diodenmatrix. Es werden 4 Pins 
am Controller benötigt, um bei negativer Logik auch die Taste '0' zu 
identifizieren. (Bei positiver Logik isses die Taste '7'). In der u.a. 
Schaltung verwende ich PortPin 3 zur Erkennung, ob überhaupt eine Taste 
gedrückt ist, an Port Pin 0-2 steht der BCD Code.
Hier mal die Matrix für Taste '5':

    Controller Port
    3   2   1   0
    |       |
    --      --
    \/      \/      Dioden
    --      --
    |       |
    o-------o
    |
    -- |
       |<--|  Taste 5
    -- |
    |
    |
   ---  GND
Ich verwende also positive Logik und habe die Pullups des Portes 
aktiviert. Wenn PortPin 3 low ist, ist eine Taste gedrückt und an Port 
2-0 steht 0b101 = 5
Andere Tasten gehen entsprechend parallel mit ihren Dioden an die 
PortPins. Taste 7 also hätte nur die  Diode an PortPin 3, dann steht an 
P0-2 0b111 = 7. Taste '0' hingegen benötigt 4 Dioden, um alle Portpins 
auf Masse zu ziehen.

von TS (Gast)


Lesenswert?

Portpin 3 ist also der mit der Bedeutung "Taste x gedrückt"!? Wenn 3 auf 
low gezogen wird bedeutet das:

Werte 0-2 aus, der Inhalt entspricht der gedrücken Taste von 1-8...oder?

TS

von Hannes L. (hannes)


Lesenswert?

TS schrieb:
> Portpin 3 ist also der mit der Bedeutung "Taste x gedrückt"!? Wenn 3 auf
> low gezogen wird bedeutet das:
>
> Werte 0-2 aus, der Inhalt entspricht der gedrücken Taste von 1-8...oder?

Ich würde es so interpretieren:

Lies immer alle 4 Bits gemeinsam ein und behandle den Wert als Zahl.
Ist der Wert 15 (0b1111), dann ist keine Taste betätigt
Ist der Wert nicht 15 (0b1111), dann ist das die Tastennummer.

...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

TS schrieb:
> Wenn 3 auf
> low gezogen wird bedeutet das:
>
> Werte 0-2 aus, der Inhalt entspricht der gedrücken Taste von 1-8...oder?

Jo, genau so. Praktischerweise würde ich bei einem AVR vermutlich den 
Pinchange Interrupt auf P3 bemühen, der dann guckt ob Pin 3 low ist, und 
wenn ja, kurz entprellt und dann P0 bis P2 als Zahl von 0b000 bis 0b111 
einliest. Also nicht ganz 1-8, sondern eher 0-7, aber das ist ja 
wurscht. Hier nochmal die Matrix, diesmal für Taste 1, nur so zur 
Verdeutlichung:
    Controller Port
    3   2   1   0
    |   |   |
    --  --  --
    \/  \/  \/      Dioden
    --  --  --
    |   |   |
    o---o---o
    |
    -- |
       |<--|  Taste 1
    -- |
    |
    |
   ---  GND

Hannes Lux schrieb:
> Ist der Wert 15 (0b1111), dann ist keine Taste betätigt
> Ist der Wert nicht 15 (0b1111), dann ist das die Tastennummer.

Hehe, so gehts natürlich auch. Pollen in der Hauptschleife geht ebenso.

von M. Schwaikert (Gast)


Lesenswert?

Sehe ich richtig, dass ich dann bei 8 Taster 20 Dioden brauche?

von Hannes L. (hannes)


Lesenswert?

M. Schwaikert schrieb:
> Sehe ich richtig, dass ich dann bei 8 Taster 20 Dioden brauche?

Na ich komme bei 8 Tastern im Binärcode mit 13 Dioden aus (V steht für 
Diode):

Bit: 3 2 1 0
1:   . . . V
2:   . . V .
3:   . . V V
4:   . V . .
5:   . V . V
6:   . V V .
7:   . V V V
8.   V . . .

Bei L-aktiven Tastern dann das eingelesene Nibble invertieren und fertig 
ist die Tastennummer...

Die Abfrage erfolgt am besten durch Pollen im Timer-Interrupt, da kann 
man dann auch gleich eine saubere Entprellung (durch mehrfachen 
Vergleich mit dem zuvor eingelesenen Wert) implementieren.

...

von TS (Gast)


Lesenswert?

Interrups für Tasten zu verwenden ist keine gute Idee. Aber im groben 
ist es dann ja das Konzept "Prioritäsencoder"...
Die Tasten einfach "binär" einlesen.

Da der To aber ja alte Bausteine verwenden möchte und wenig Pins hat 
sind vielleicht eher 74165 oder 74150 o.ä. interessant... :-)


TS

von Hannes L. (hannes)


Lesenswert?

TS schrieb:
> der To

Welcher?? - Der dieses Threads oder der des anderen, versemmelten 
Threads?

Dort war übrigens vom Mega32 die Rede, der hat ADC, da kann man alle 
Tasten über einen Pin einlesen und entprellen, kostet nur ein paar 
Widerstände und etwas Software.

...

von Hannes L. (hannes)


Lesenswert?

Hannes Lux schrieb:
> Der dieses Threads

Ups, das bist ja Du... ;-)) - Sorry...

...

von TS (Gast)


Lesenswert?

das wurde bereits als Lösung vorgeschlagen:

A)Priositäsencoder (4Pins) 74147/diodenmatrix
B)Schieberegister Tasten seriell einlesen (3Pins) 74165 / naja 74595
C)Analog (1Pin)            direkt/widerstände
D)Matrix (6Pins 3x3)       direkt
E)Multiplexer              74150

wie oben bereits unter Lösungen gepostet.

TS

von Axel S. (a-za-z0-9)


Lesenswert?

Hannes Lux schrieb:

> ich komme bei 8 Tastern im Binärcode mit 13 Dioden aus (V steht für
> Diode):
>
> Bit: 3 2 1 0
> 1:   . . . V
> 2:   . . V .
> 3:   . . V V
> 4:   . V . .
> 5:   . V . V
> 6:   . V V .
> 7:   . V V V
> 8.   V . . .
>
> Bei L-aktiven Tastern dann das eingelesene Nibble invertieren und fertig
> ist die Tastennummer...

Aber nur unter der Annahme, daß immer nur maximal eine Taste gedrückt 
ist. Werden bspw. Taste 1 und 2 gleichzeitig gedrückt, detektiert der µC 
Taste 3.

Ein Priritätsencoder kann zwar auch nur eine Taste erkennen, liefert 
aber bei mehreren gedrückten Tasten wenigstens keinen Unsinn.


XL

von TS (Gast)


Lesenswert?


von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

TS schrieb:
> Da der To aber ja alte Bausteine verwenden möchte und wenig Pins hat

Ich zähle Dioden und Widerstände mit zu den alten Bauteilen, hehe.

Hannes Lux schrieb:
> Dort war übrigens vom Mega32 die Rede, der hat ADC, da kann man alle
> Tasten über einen Pin einlesen und entprellen, kostet nur ein paar
> Widerstände und etwas Software.

Das kostet am wenigsten Pins (einen einzigen), hat allerdings den Haken, 
das bei älteren Tastern das mal nicht mehr so gut funktionieren muss. 
Mehrere Tasten zusammen liefern auch hier Unsinn, aber der TO hatte das 
ja ausgeschlossen. Mit Qualitätstastern finde ich die ADC Lösung am 
elegantesten, wenn auch programmiertechnisch etwas anspruchvoller. Aber 
man braucht nur 2 Drähte zum Tastenfeld und das gefällt mir gut :-)

von Martin S. (sirnails)


Lesenswert?

Oh weh, die Idee mit dem neuen Thread war zwar nicht schlecht, jetzt hat 
aber die totale Verwirrung Einzug gehalten :)

Also nochmal zum Zusammenfassen: Mega32, 9 Taster, sowie einen 4 Bit 
Inkrementalgeber nebst drei LEDs und VFD mit 27 Pins, oder in Summe 
minimum 44 Anschlüsse.

Da das natürlich nicht hinhaut, suche ich nach einer netten Lösung mit 
TTLs - einfach aus Jux und Dollerei und weil ich die eh habe.

Und ja, es sind jetzt doch 9 Taster - wie gesagt waren 8 nicht 
endgültig.

von Hannes L. (hannes)


Lesenswert?

Martin Schwaikert schrieb:
> es sind jetzt doch 9 Taster - wie gesagt waren 8 nicht
> endgültig.

Mit Dioden an 4 Pins geht es bis zu 15 Taster.

Martin Schwaikert schrieb:
> einen 4 Bit
> Inkrementalgeber

Was zum Teufel ist das???
Inkrementelle Drehgeber kenne ich nur mit zwei Bits (Spur A und B), kann 
es sein, dass Du Absolut-Wert-Encoder meinst?

...

von Thorsten S. (whitejack)


Lesenswert?

3x3 Tastenmatrix + 1 Pin für 3 LEDs = 7Pins.

--------------o---------o---------,
          /   |     /   |     /   |
      ,--o o--' ,--o o--' ,--o o--'
      |         |         |
------+-------o-+-------o-+-------,
      |   /   | |   /   | |   /   |
      ,--o o--' ,--o o--' ,--o o--'
      |         |         |
------+-------o-+-------o-+-------,
      |   /   | |   /   | |   /   |
      ,--o o--' ,--o o--' ,--o o--'
      |         |         |
------o---------+---------+-------|>|-,
                |         |           |
                |         |           |
                |         |           |
----------------o---------+-------|>|-o
                          |           |
                          |           |
                          |           |
--------------------------o-------|>|-o
                                      |
                                      |
                                      |
----------------|39 Ohm|--------------'


>>oder in Summe minimum 44 Anschlüsse

und wieviel sollen es nun sein/werden/dürfen?

27 VFD
4 drehgeber, was auch immer das für einer ist
7 für Taster und LEDs

sind 38, zu viel?

Was ist mit der alten Logik? soll die nun verwendet werden?


TS

von Martin S. (sirnails)


Lesenswert?

Hannes Lux schrieb:
> Martin Schwaikert schrieb:
>> es sind jetzt doch 9 Taster - wie gesagt waren 8 nicht
>> endgültig.
>
> Mit Dioden an 4 Pins geht es bis zu 15 Taster.

Ich hab die Idee mal aufgeschnappt, war aber weniger begeistert, da der 
Schaltungsaufwand alleine an Leiterbahnen und Dioden schon recht groß 
wird. Ansonsten ist die Idee eigentlich gar nicht mal schlecht. Nur habe 
ich bei meiner Variante, die ich probiert habe, für jede nicht-genutzte 
Leitung eine Diode gebraucht. Ist das bei Deiner Variante auch so, oder 
hab ich da nen Denkfehler drinnen?

> Martin Schwaikert schrieb:
>> einen 4 Bit
>> Inkrementalgeber
>
> Was zum Teufel ist das???
> Inkrementelle Drehgeber kenne ich nur mit zwei Bits (Spur A und B), kann
> es sein, dass Du Absolut-Wert-Encoder meinst?

Oh weh, ja, Absolutwertgeber. Bin schon ganz matschig in der Birne :)

Thorsten S. schrieb:
> 3x3 Tastenmatrix + 1 Pin für 3 LEDs = 7Pins.

Gut, eine Matrix ist dann wohl der Weisheit letzter Schluss.

>>>oder in Summe minimum 44 Anschlüsse
>
> und wieviel sollen es nun sein/werden/dürfen?
>
> 27 VFD
> 4 drehgeber, was auch immer das für einer ist
> 7 für Taster und LEDs
>
> sind 38, zu viel?

Ja. 32 hat der Mega32 maximal. Davon gehen 2 wech für UART, 8 für die 
4-zu-16-Dekoder (74154) sowie zwei für den 74273, da der 74154 keinen 
Latch hat, 4 für den Absolutwertgeber, 7 für die Matrix, 1 für einen 
IR-Empfänger. Das sind dann bisher 24 Pins. Bleiben 7 reserve, falls 
sich zeigen sollte, dass ich doch mehr brauche (an die ich noch nicht 
gedacht habe).


> Was ist mit der alten Logik? soll die nun verwendet werden?

Welche alte Logik? Ich hab nen tollen Vorschlag, um das in vier 
Leitungen zu packen. Allerdings ein Totschläger:

  W =  E * /F * /G * /H * /I
    +  D * /F * /G * /H * /I
    +  C * /F * /G * /H * /I
    +  B * /F * /G * /H * /I
    +  A * /F * /G * /H * /I

  X =  I
    +  H
    +  G
    +  F
    +  A * /B * /C * /D * /E

  Y =  G * /H * /I
    +  F * /H * /I
    +  C * /D * /E * /H * /I
    +  B * /D * /E * /H * /I

  Z =  H * /I
    +  F * /G * /I
    +  D * /E * /G * /I
    +  B * /C * /E * /G * /I


Oder mit anderen Worten:

   1  AND_2    2  OR_4
   3  AND_3    2  OR_5
   1 * AND_4
   9 * AND_5

Das ist schon ein ziemlicher Oschi :)

Natürlich sei nochmal das PROM in's Gedächtnis gerufen. 2 Stück 16x8 
parallel um den 15 zu 4 Dekoder als Wahrheitstabelle abzulegen ginge 
natürlich auch. Dann würden es 3 Leitungen für die LEDs werden und damit 
wäre wohl auch nichts gewonnen.

Ich glaube bei all dem schönen Tatendrang scheint die Matrix das Rennen 
zu machen.

von Bernhard S. (b_spitzer)


Lesenswert?

I²C-Portexpander für die Taster => PCF8574 für 8 Taster oder PCA9555 für 
8 Taster und 8 LEDs => Mit Interrupt-Leitung nur 3 Pins.

tschuessle
Bernhard

von Dennis S. (whiterussian)


Lesenswert?

>>8 für die 4-zu-16-Dekoder (74154)

Es wird glaube ich zeit das du mal erklärst was du da überhaupt treibst.

>>zwei für den 74273, da der 74154 keinen Latch hat

??

A) Was machen die 74154?
B) Warum das Latch, hängt noch etwas anderes mit an den Controller Pins?

>>Das sind dann bisher 24 Pins

ich dachte das VFD hat 27 Pins?

>>Ich hab nen tollen Vorschlag

Hier sucht keiner eine Lösung oder einen Vorschlag, nur du.

>> um das in vier Leitungen zu packen

was? wovon ist die Rede?

Sag mal ist das hier eine Spaßrunde? Ich jedenfalls verstehe nur noch 
Bahnhof. Nun ist hier noch ein UART und da noch was.

Poste mal ausführlich deinen Schaltplan, deine Komponentenliste und 
konkretisiere mal das Problem! Was ist wofür, was ist wo angeschlossen?

von Hannes L. (hannes)


Lesenswert?

Dennis S. schrieb:
> ist das hier eine Spaßrunde?

Ja sicher doch, genau wie der andere Thread. Ich bin dann wech hier...

...

von Mikel M. (mikelm)


Lesenswert?

Hab jetzt oben die Links nicht weiter verfolgt, und mag auch nicht 
darumsuchen. Wenn du schon nen neuen Thread machst solltest du oben 
wenigstens ne Zusammenfassung posten.
 Hab noch nirgends gesehen das du die AD wandler benutzt. Warum also die 
Taster nicht mit Widerständen beschalten, dann über AD wandlung 
auslesen, dann brauchst du nur einen Pin.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Mikel M. schrieb:
> Hab noch nirgends gesehen das du die AD wandler benutzt.

Doch klar, das war Hannes' Idee:

Hannes Lux schrieb:
> Dort war übrigens vom Mega32 die Rede, der hat ADC, da kann man alle
> Tasten über einen Pin einlesen und entprellen

Dennis S. schrieb:
> Sag mal ist das hier eine Spaßrunde? Ich jedenfalls verstehe nur noch
> Bahnhof.

Hehe, hättest du von Anfang an verfolgt, worum es geht, dann wüsstest 
du, das wir uns hier theoretisch austoben. Warum auch nicht, ist doch 
mal nett, alle möglichen Arten der Tastenabfrage zu diskutieren. Kannst 
ja rüberscrollen. Meine Methode ist allerdings torpediert worden, da es 
jetzt plötzlich 9 Tasten sind. Das ist gemein.

von MCUA (Gast)


Lesenswert?

>Hab noch nirgends gesehen das du die AD wandler benutzt. Warum also die
>Taster nicht mit Widerständen beschalten, dann über AD wandlung
>auslesen, dann brauchst du nur einen Pin.
und für 64 Tasten ein 64Bit-ADC.

von Derjenige Welcher (Gast)


Lesenswert?

74147 ist schon mal scheisse, da der auch 0 ausgibt wenn nichts gedrückt 
ist. Ausserdem ist das TTL und ein ziemlicher Stromfresser.

In dem anderen Thread wurde doch der 74HC148 angesprochen, was spricht 
gegen den? 8 Eingänge, 3-bit Binärausgang und ein extra Ausgang der 
anzeigt wenn die Ausgänge gültig sind.

Hier ist übrigens ein 16 zu 4 Encoder:
1
  OPALjr Example
2
  Copyright National Semiconductor Corp, 1993.
3
4
  16-TO-4 PRIORITY ENCODER
5
6
CHIP 16_4_PRI GAL20V8
7
8
D3  D4  D5  D6  D7  D8  D9  D10 D11 D12 D13 GND
9
D14 D15 NC  ANY Y3  Y2  Y1  Y0  D0  D1  D2  VCC
10
11
EQUATIONS
12
13
 Y0 =  D15
14
    + /D14* D13
15
    + /D14*/D12* D11
16
    + /D14*/D12*/D10* D9
17
    + /D14*/D12*/D10*/D8* D7
18
    + /D14*/D12*/D10*/D8*/D6* D5
19
    + /D14*/D12*/D10*/D8*/D6*/D4* D3
20
    + /D14*/D12*/D10*/D8*/D6*/D4*/D2* D1
21
    
22
 Y1 =  D15
23
    +  D14
24
    + /D13*/D12* D11
25
    + /D13*/D12* D10
26
    + /D13*/D12*/D9*/D8* D7
27
    + /D13*/D12*/D9*/D8* D6
28
    + /D13*/D12*/D9*/D8*/D5*/D4* D3
29
    + /D13*/D12*/D9*/D8*/D5*/D4* D2
30
31
 Y2 =  D15 + D14 + D13 + D12
32
    + /D11*/D10*/D9*/D8* D7
33
    + /D11*/D10*/D9*/D8* D6
34
    + /D11*/D10*/D9*/D8* D5
35
    + /D11*/D10*/D9*/D8* D4
36
    
37
/Y3 = /D15*/D14*/D13*/D12*/D11*/D10*/D9*/D8
38
39
/ANY = /D15*/D14*/D13*/D12*/D11*/D10*/D9*/D8
40
      */D7*/D6*/D5*/D4*/D3*/D2*/D1*/D0

Aber eigentlich ist das ja unnötig komplex. Man braucht die Priorität 
gar nicht zu kodieren, denn wenn mehrere Taster gedrückt sind, dann ist 
das Ergebnis sowieso unsinn. Es würde also reichen die einzelnen Bits zu 
kodieren.

von Martin S. (sirnails)


Lesenswert?

Dennis S. schrieb:
>>>8 für die 4-zu-16-Dekoder (74154)
>
> Es wird glaube ich zeit das du mal erklärst was du da überhaupt treibst.

So ein großes Mysterium ist das gar nicht. Ich will schon länger einen 
HTPC bauen und hatte eigentlich das Rapi dafür im Auge. Allerdings kann 
es, wie inzwischen gemeinhin bekannt ist, nicht mit mpeg2 umgehen - was 
wohl ein eindeutiges KO-Kriterium für einen htpc ist.

Daher wollte ich auf bestehende Komponenten zurückgreifen. Da ich aber 
gesehen habe, wie dreist teuer Mini-ITX-Boards Boards sind, und dass die 
Gehäuse fast nochmal so viel kosten, wie das Board habe ich mich für 
Standard-PC-Komponenten entschieden. Jetzt brauchte ich allerdings noch 
ein Gehäuse. Da viel mir der gute alte Panasonic A-350 DVD Player in die 
Hände, der inzwischen das Zeitliche gesegnet hatte. Also hab ich die 
Kiste ausgeschlachtet. Die Frontplatine, auf der alle Fronttaster und 
das VFD drauf sind, muss drinnen bleiben, da mir sonst die Tasterknöpfe 
entgegen fliegen. Darum kam mir die Idee, das komplette Frontpanel 
mitsamt Tastern, IR-Empfänger und VFD zu recylen.

>>>zwei für den 74273, da der 74154 keinen Latch hat
> A) Was machen die 74154?

Zeilen- und Spaltendecoder für das VFD, da dieses 13 Zeilen und 14 
Spalten besitzt und es kaum Sinn hat, dieses komplett an den µC 
anzuschließen wenn es auch bessere Lösungen gibt.

> B) Warum das Latch, hängt noch etwas anderes mit an den Controller Pins?

Das war eine Idee die ich mir von einer anderen Schaltung abgeguckt habe 
und die bei entsprechender Ansteuerung das Ghosting verhindern soll.

>>>Das sind dann bisher 24 Pins
>
> ich dachte das VFD hat 27 Pins?

Upps, ja, 27.

>>>Ich hab nen tollen Vorschlag
>
> Hier sucht keiner eine Lösung oder einen Vorschlag, nur du.

Das hast Du absolut richtig erfasst, sonst hätte ich nicht danach 
gefragt :)

>>> um das in vier Leitungen zu packen
>
> was? wovon ist die Rede?
>
> Sag mal ist das hier eine Spaßrunde? Ich jedenfalls verstehe nur noch
> Bahnhof. Nun ist hier noch ein UART und da noch was.

Richtig, weil es zur Fragestellung weder einen Verlust noch eine 
Bereicherung darstellt, die weiteren Rahmenbedingungen zu kennen. 
Prinzipiell geht es mir um Lösungsansätze, mit möglichst wenig Portpins 
möglichst viel zu erreichen, welche Vor- und Nachteile sich hieraus 
ergeben - einfach ein bisschen Brainstorming.

> Poste mal ausführlich deinen Schaltplan, deine Komponentenliste und
> konkretisiere mal das Problem! Was ist wofür, was ist wo angeschlossen?

Das dürfte wohl jetzt klar sein. Schaltplan gibt es in dem Sinne (noch) 
keinen. Außerdem will ich keine fertige Lösung - die möchte ich mir 
selbst erarbeiten. Es geht mir, wie gesagt, vorerst nur um Anregungen.

von Martin S. (sirnails)


Lesenswert?

Derjenige Welcher schrieb:
> 74147 ist schon mal scheisse, da der auch 0 ausgibt wenn nichts gedrückt
> ist.

Das ist eigentlich egal, denn wie die Auswertung des Eingangs hinterher 
im µC abläuft, ist ja eine reine Softwareumsetzung.

> Ausserdem ist das TTL und ein ziemlicher Stromfresser.

Das ist richtig. Allerdings ist Stromverbrauch nicht mein Problem und im 
Anbetracht der sonstigen Leistungsaufnahme auch eher ein Faktor im 
unteren einstelligen Prozentbereich.

> In dem anderen Thread wurde doch der 74HC148 angesprochen, was spricht
> gegen den? 8 Eingänge, 3-bit Binärausgang und ein extra Ausgang der
> anzeigt wenn die Ausgänge gültig sind.

1er zu wenig, weil ich einen Taster übersehen habe, der auf einer extra 
Platine war.

> Hier ist übrigens ein 16 zu 4 Encoder:

Sowas hab ich oben auch schon gepostet :) Allerdings ein FPGA für 9 
Taster? Ich weiß ja nicht.

> Aber eigentlich ist das ja unnötig komplex. Man braucht die Priorität
> gar nicht zu kodieren, denn wenn mehrere Taster gedrückt sind, dann ist
> das Ergebnis sowieso unsinn. Es würde also reichen die einzelnen Bits zu
> kodieren.

Stimmt. Es gibt keine Priorität, da ein Drücken von zwei Tasten 
gleichzeitig unsinn wäre.

von Marko ⚠. (mos6502) Benutzerseite Flattr this


Lesenswert?

Martin Schwaikert schrieb:
> Sowas hab ich oben auch schon gepostet :) Allerdings ein FPGA für 9
> Taster? Ich weiß ja nicht.

Das ist kein FPGA sondern ein GAL. Die wurden eigentlich genau für 
solche Fälle gemacht.

http://de.wikipedia.org/wiki/Generic_Array_Logic

von Dennis S. (whiterussian)


Lesenswert?

>>Das dürfte wohl jetzt klar sein.

es ist nicht angreifend gemeint, aber das kann doch nicht dein Ernst 
sein.

>>Ja. 32 hat der Mega32 maximal. Davon gehen 2 wech für UART, 8 für die
>>4-zu-16-Dekoder (74154) sowie zwei für den 74273, da der 74154 keinen
>>Latch hat, 4 für den Absolutwertgeber, 7 für die Matrix, 1 für einen
>>IR-Empfänger. Das sind dann bisher 24 Pins. Bleiben 7 reserve,

32-(2+8+4+7+1=24)=8 und nicht 7.

Du schreibst erst jetzt etwas über ein VFD:

>>da dieses 13 Zeilen und 14 Spalten besitzt ..

sind das zusammen die 27pins?

Es mcht absolut keinen Spaß dir alles aus der Nase zu ziehen. Warum 
beschreibst du nicht einmal den kompletten Rahmen?

Ich habe einen Controller X pins frei, daran soll folgendes 
angeschlossen werden:

Drehwertgeber "Artikelbezeichnung" Datenblatt
VFD "Artikelbezeichnung" Datenblatt
IR Empfänger "Artikelbezeichnung" Datenblatt
etc...

Das hier ist vielleicht ein "Brainstorming" in deinen Augen, aber in 90% 
der Leser ist es eher ein Durcheinander an Überschriften, neuen Threads 
und immer neuen Aussagen, die vorher keiner kannte.

Nur als Beispiel könnte man bei der VFD Matrix wunderbar mit einem Pin 
mehr - etliche Tasten einbauen... aber bisher wurde angenommen du willst 
nur Tasten einlesen und das VFD mit 27 Pins ist wirklich arm beschrieben 
und das ist untertrieben. Jetzt rückst du raus das es 14 Zeilen und 13 
Spalten hat und nicht einen fertigen Bus o.ä., was kommt als nächstes, 
vielleicht das alles auf 1,8V funktionieren sollte... ich hoffe du 
verstehst das Problem. Übrigens die meisten hier machen sich nicht die 
Mühe den "Fragenden" darauf hinzuweisen, sie lassen es einfach.

Was ich damit sagen will, wenn du nicht einmal konkret beschreibst wie 
dein Umfeld aussieht, dann kommt hier nichts vernünftiges nachhaltiges 
raus. Wenn du natürlich nur etwas "Brainstorming" im oberflächlichen 
willst...ist aber unfair den Usern gegenüber die hier schreiben und 
schreiben, lösungen bieten und dann wird wieder etwas grundlegendes 
geändert - macht man eigentlich nicht...was für dich ein nettes 
Brainstorming ist ärgert hier sicher den einen oder anderen. Also bitte, 
mach einen neuen Thread auf, mit einer passenden Überschrift und 
beschreibe dein Vorhaben, konkret, genau und vor allem komplett, mit 
Datenblatt oder Bezeichnungen.

Gruß,
DS

von Thorsten S. (whitejack)


Lesenswert?

...das ist der Grund warum ich hier mittlerweile nicht mehr schreibe - 
ich komme mir verarscht vor - mache auch noch einen neuen Thread auf...

TS

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

MCUA schrieb:
>>Hab noch nirgends gesehen das du die AD wandler benutzt. Warum also die
>>Taster nicht mit Widerständen beschalten, dann über AD wandlung
>>auslesen, dann brauchst du nur einen Pin.
> und für 64 Tasten ein 64Bit-ADC.

Häh, wieso das denn? Du musst die Widerstände nur jeweils so wählen, das 
für 64 Tasten ein einigermassen gleichmässiger Wertevorrat aus der 
Bittiefe des ADC bleibt, z.B. ein R2R Netzwerk.
Also bei 9 Tasten und einem 10 Bit ADC sind das dann (weil keine Taste 
gedrückt auch ein Zustand ist) :
1024 / 10 = ca. 102 Bit Range pro Taste. Bei 64 Tasten bleiben dann
1024 / 65 = ca 15 bit. Das wird allerdings wegen der unvermeidlichen 
Übergangswiderstände der Taster ein wenig eng.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

VFD?  Tasten ? Ich hab nicht alles durchgelesen, aber schau mal hier 
mein "Angebot" an:

Beitrag "[biete] PT6312 LQ VFD Display Treiber"

von Hannes L. (hannes)


Lesenswert?

Thorsten S. schrieb:
> ich komme mir verarscht vor

Du auch?

> mache auch noch einen neuen Thread auf...

Nur durch den bin ich auf das Thema gestoßen, der Betreff des ersten 
Threads sprach mich nicht an...

Und wech...

...

von Martin S. (sirnails)


Lesenswert?

Dennis S. schrieb:
>>>Das dürfte wohl jetzt klar sein.
>
> es ist nicht angreifend gemeint, aber das kann doch nicht dein Ernst
> sein.
>
>>>Ja. 32 hat der Mega32 maximal. Davon gehen 2 wech für UART, 8 für die
>>>4-zu-16-Dekoder (74154) sowie zwei für den 74273, da der 74154 keinen
>>>Latch hat, 4 für den Absolutwertgeber, 7 für die Matrix, 1 für einen
>>>IR-Empfänger. Das sind dann bisher 24 Pins. Bleiben 7 reserve,
>
> 32-(2+8+4+7+1=24)=8 und nicht 7.
>
> Du schreibst erst jetzt etwas über ein VFD:
>
>>>da dieses 13 Zeilen und 14 Spalten besitzt ..
>
> sind das zusammen die 27pins?

Kurzum: ja. Es sei denn, die Heizspannung wird noch über eine Brücke 
erzeugt, dann sind es natürlich noch mehr. Momentan tendiere ich eher 
zum Trafo mit Mittelabgriff, was aber wieder neue Probleme erzeugen 
würde.

>
> Es mcht absolut keinen Spaß dir alles aus der Nase zu ziehen. Warum
> beschreibst du nicht einmal den kompletten Rahmen?

Weil der gesamte Rahmen bisher ein theoretisches Konstrukt ist und ich 
bisher einfach am überlegen bin. Den groben Rahmen habe ich ja oben 
bereits geschrieben.

> Ich habe einen Controller X pins frei, daran soll folgendes
> angeschlossen werden:
>
> Drehwertgeber "Artikelbezeichnung" Datenblatt

Gibts nicht. Nur eine Wahrheitstabelle.

> VFD "Artikelbezeichnung" Datenblatt

Gibts nicht. Ist eine Kundenanfertigung für Panasonic von Futuba für das 
es kein Datenblatt gibt, und auch beim Hersteller nicht gelistet wird.

> IR Empfänger "Artikelbezeichnung" Datenblatt
> etc...

Auch das gibt es nicht. Unter der benannten Type lässt sich absolut 
nichts finden. Wahrscheinlich auch wieder eine Produktion für, oder 
sogar von Panasonic.

> Das hier ist vielleicht ein "Brainstorming" in deinen Augen, aber in 90%
> der Leser ist es eher ein Durcheinander an Überschriften, neuen Threads
> und immer neuen Aussagen, die vorher keiner kannte.

Naja, also das ist aber eigentlich nicht auf meinen Mist gewachsen. 
Meine ursprüngliche Frage war die Suche nach einem 8-bit binär zu bcd 
konverter bzw. einem 16-zu-4 Kodierer, wie es der 74154 ist, nur eben in 
umgekehrter Richtung. Dass die ganze Diskussion dann weiter ging und 
inzwischen zu einer Fünf-Fronten-Diskussion ausartete, war nicht mein 
ansinnen und geht auch weit über das hinaus, was ich ursprünglich wissen 
wollte. Ich hab das jetzt eine Zeit lang mitgemacht, aber irgendwie ist 
das für niemanden befriedigend. Mich selbst wundert das aber auch nicht, 
denn wenn ich bis ins Detail hätte einen Lösungsweg vorgekaut bekommen 
wollen, dann hätte ich das auch so gefragt.

> Nur als Beispiel könnte man bei der VFD Matrix wunderbar mit einem Pin
> mehr - etliche Tasten einbauen...

In jedem Falle bietet sich das für die LEDs an. Auch eine nette Idee.

> aber bisher wurde angenommen du willst
> nur Tasten einlesen und das VFD mit 27 Pins ist wirklich arm beschrieben
> und das ist untertrieben.

Tja, weit mehr weiß ich auch nicht. Für mich war die Anforderung mit 8 
Pins am Prozessor im Bezug auf das VFD abgehakt.

> Jetzt rückst du raus das es 14 Zeilen und 13
> Spalten hat und nicht einen fertigen Bus o.ä., was kommt als nächstes,
> vielleicht das alles auf 1,8V funktionieren sollte...

Nein, es hat 13 Grids mit je 14 Segmenten und ist weder ein reines 
13-Segment, noch ein Punktmatrixdisplay.Der Controller war ebenfalls 
eine Kundenanfertigung ohne nenneswertes Datenblatt mit sowas um die 80 
Pins bei dem alle Taster, LEDs und das VFD einzeln angeschlossen waren, 
und zudem hinüber.

> ich hoffe du
> verstehst das Problem. Übrigens die meisten hier machen sich nicht die
> Mühe den "Fragenden" darauf hinzuweisen, sie lassen es einfach.

Natürlich verstehe ich das. Aber wie gesagt, es war nicht mein Ansinnen 
eine komplette Lösung zu bekommen. Das "Brainstorming" war eher ein 
Versuch, den Thread hier noch zu retten. Nachdem das aber reichlich in 
die Hose ging, kann man das hier mehr oder minder an den Nagel hängen. 
Eigentlich schade, denn wenn das ganze jemand ein bisschen 
zusammengeschrieben hätte, wäre vielleicht ein recht guter Wiki-Artikel 
dabei herausgekommen.

> Was ich damit sagen will, wenn du nicht einmal konkret beschreibst wie
> dein Umfeld aussieht, dann kommt hier nichts vernünftiges nachhaltiges
> raus.

Was heißt vernünftig und nachhaltig? Eine explizite Problemlösung oder 
einfach nur einen Abriss der Möglichkeiten, von denen es dann eine in 
der spezifizierten Umgebung herauszuarbeiten gilt?

von Mikel M. (mikelm)


Lesenswert?

MCUA schrieb:
>>Hab noch nirgends gesehen das du die AD wandler benutzt. Warum also die
>>Taster nicht mit Widerständen beschalten, dann über AD wandlung
>>auslesen, dann brauchst du nur einen Pin.
> und für 64 Tasten ein 64Bit-ADC.

das kommt darauf an welche Anforderungen du stellst.
 Wenn du nur ne Einzeltaste erkennen willst, oder 2 
gleichzeitiggedrückt, kannst du mit dem eingebauten schon sehr viele 
erkennen. Ich hab an einem  18 Tasten dran, wobei 1 bevorrechtig war und 
immer erkannt wurden. während die anderen bis zu 2 gleichzeitig erkannt 
wurden. funktionierte problemlos.
 Wenn sie genau genug sind könntest du mit nem 8bit , theoreitisch 255 
Tasten erkennen.

von MCUA (Gast)


Lesenswert?

>Wenn sie genau genug sind könntest du mit nem 8bit , theoreitisch 255
>Tasten erkennen.
Aber nur ohne Mehrfachtastenbetätigung! Wenn 2 oder mehr 'untere' Tasten 
betätigt werden ergibt sich der falsche Wert!

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.