Eingaenge in Reihe schalten

Gast #1311270
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.
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
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.
Gast
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
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.
ok, so soll die Tabelle aussehen:
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
    1     |   1    | 3

Hoffe ich...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.