Eingaenge in Reihe schalten

Gast #1311270
Lesenswert?

hallo jungs,

habe heute ein brett vor dem kopf.

habe 2 atmegas8 amlaufen mit lcd usw.

der eine schickt seine daten an den anderen, zb schalter am atmega1 
ausgaenge vom atmega2 werden geschaltet, schalter Atmega2 werden auf LCD 
vom atmega1 angezeigt, alles super, aber ich habe eine blockade 
momentan,
habe schon im forum gesucht aber nichts gefunden. ich moechte 2 
ausgaenge in reihe schalten. siehe beispiel unten.

beispiel
If Pind.6 = 1 Then
     Adresse = 1
     Print Adresse

  End If

  If Pind.7 = 1 Then
     Adresse = 2
     Print Adresse
   End If

d.6 =1 und D.7=1 = Adresse = 3

ich danke fuer eure hilfe jetzt schon mal im Vorrau,
Dietmar

Die Rechtschreibung lassen wir heute mal weg, habe schon Kopfschmerzen 
davon.
#1311273
Lesenswert?

Vielleicht habe ich es richtig verstanden:
1
  Adresse = 0
2

3
  If Pind.6 = 1 Then
4
     Adresse = Adresse + 1
5
     Print Adresse
6

7
  End If
8

9
  If Pind.7 = 1 Then
10
     Adresse = Adresse + 2
11
     Print Adresse
12
   End If

Jetzt ist Adresse 0, 1, 2, oder 3; je nachdem ob keiner
oder Pin6 oder Pin7 oder beide an sind.

Gute Besserung!
Gast #1311431
Lesenswert?

Vielleicht so?

If (Pind.7 = 0) and (Pind.6 = 1) Then
     Adresse = 1
End If

If (Pind.7 = 1) and (Pind.6 = 0) Then
     Adresse = 2
End If

If (Pind.7 = 1) and (Pind.6 = 1) Then
     Adresse = 3
End If

Print Adresse

Gruß bix
#1311919
Lesenswert?

Dietmar schrieb:
> das ja richtig,
>
> aber ich moechte es ja so machen
>  eingang  adr
>    1       1
>    2       2
>   1+2      3
>    2       4
> usw.
>
> binaer halt und bei eingang 1+2 =3 ist momentan die blockade bei mir.

Was denn nun?
eingang 2 soll 2 geben oder 4?

Mal angenommen, deine Pind.6 und Pind.7 sind jeweils ein Bit.
Dann kann es doch nur 4 Zustände geben:
1
  Pind.6  | Pind.7 | Adresse (falls ich es richtig verstanden habe)
2
----------+--------+------------------------------------------------
3
    0     |   0    | 0
4
    1     |   0    | 1
5
    0     |   1    | 2
6
    0     |   0    | 3

Dann kannst du es nach meinem Vorschlag machen, oder dem von bix,
oder ganz kurz:
1
Adresse = Pind.6 + 2*Pid.7

Ansonsten habe ich die Frage immer noch nicht verstanden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren