www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Eingaenge in Reihe schalten


Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht habe ich es richtig verstanden:
  Adresse = 0

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

  End If

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

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

Gute Besserung!

Autor: kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal im Groben so:

ergebnis = 1 +2
print ergebnis


oder ist das zu einfach?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Print... gehören natürlich noch aus den If-Blöcken raus,
dafür ein Print ganz am Ende.

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist richtig ist ja auch nur ein beispiel weil print befehl kommt am 
ende da ergebnis ja sonnst falsch waehre.

Autor: bix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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:
  Pind.6  | Pind.7 | Adresse (falls ich es richtig verstanden habe)
----------+--------+------------------------------------------------
    0     |   0    | 0
    1     |   0    | 1
    0     |   1    | 2
    0     |   0    | 3

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

Ansonsten habe ich die Frage immer noch nicht verstanden.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
0 & 0 =0? Oder doch =3?

So schnell kann es gehen mit der Vertipperei...:-)
"Was denn nun?
eingang 2 soll 2 geben oder 4?"

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, so soll die Tabelle aussehen:
  Pind.6  | Pind.7 | Adresse (falls ich es richtig verstanden habe)
----------+--------+------------------------------------------------
    0     |   0    | 0
    1     |   0    | 1
    0     |   1    | 2
    1     |   1    | 3

Hoffe ich...

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe mich vertippt 1 2 4 usw

Autor: Stefan P. (form)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Adresse = (Pind & 0xC0) >> 5;

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.