Forum: Mikrocontroller und Digitale Elektronik Adressierung bus mit dipschalter


von sven (Gast)


Lesenswert?

hallo zusammen,

habe ein kleines problem und ich hoffe Ihr könnt mit bei dem kleinen 
problem helfe.

also ich habe 9 atmega8, sind als bus gekoppel.
aufbau ist jeder atmega8 ist auf einer platiene (Steckkarten)
also karte eins master und karte 2-9 slave.
wenn ich die adressierung schreibe ist die funktion auch ok.
ich habe jetzt nur das problem ich möchte die adr über dipschalter 
vergeben, so das man die karten untereinander tauschen kann und anhand 
der dipschalter die adr vergibt ( bzw soll dann die steckplatz nr 
darstellen).

kann mir eier helfen, wie ich das vom program erreiche.

sollte so sein, eingang1=adr 1, eingang2=adr2, eingang1+2=adr3 usw usw

habe da ergendwie meine probleme.

danke im vorraus.

sven

von holger (Gast)


Lesenswert?

DIP-Schalter einlesen ist nur etwas für
die Profis! SCNR :(

Man, man, man.

von sven (Gast)


Lesenswert?

ok, das ist wohl richtig, aber wie soll man dahin kommen, wenn man einen 
nicht helfen möchte in der sache.

ich habe ja auch kein problem einem zu helfen wenn ich es kann und das 
wissen da ist.

also bitte hilft mir doch mit einem beispiel zum beispiel.

danke sven

von Michael U. (amiga)


Lesenswert?

Hallo,

also das Einlesen von Schaltern und Tastern an einem AVR ist wohl der 
erste Teil des AVR-Tutorials für Anfänger...

Wenn Du jetzt schreibst, daß Du da Master/Slave geschichten mit 8 AVR 
laufen hast und dann daran scheiterst, kann ich holgers Bemerkung nur zu 
gut verstehen.

Was ist denn nun Dein Problem? Das Einlesen der Schalterstellung mit 
einem AVR?
Dann kann ich Dich auch nur dahin verweisen:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen

Gruß aus Berlin
Michael

von Manfred S. (mandinice)


Lesenswert?

Hallöchen

Kannst Du die Eingänge noch frei auswählen ?

Wenn ja. Nimm einfach die ersten vier Eingänge eines Ports und blende 
die oberen vier Bits aus.

Adresse = PortA AND 0x0f

In welcher Programmiersprache arbeitest Du ?

hmg
Mandi

von markus (Gast)


Lesenswert?

Wenn du die Karten austauschen möchtest, mach doch die Codierung der 
Busadresse an deiner Busrückwand oder im Spannungsstecker irgendwo halt, 
aber diese Einstellung per DIP-Schalter ist Fehleranfällig.

von gast (Gast)


Lesenswert?

alternativ  einen 4bit schalter oder ein 4poligen DIP  eben


dann hast du 16 adressen zur wahl
diese ließt du auf jedem slave  ein
nimmst eine standardadresse  + DIPschalter

von sven (Gast)


Lesenswert?

ich danke euch schon mal für die antworten, wie was angeschloßen wird 
ist mir schon klar.

meine frage war ja jetzt nur gewessen, wie baue ich es im program ein 
das ich bei dip stellung1 , 1adr auf dem chip schreibe, für2 2 usw.

von sven (Gast)


Lesenswert?

hat den keiner von Euch ein kleines beispiel

von Justus S. (jussa)


Lesenswert?

sven schrieb:
> hat den keiner von Euch ein kleines beispiel

steht doch längst da:

Manfred Schön schrieb:
> Adresse = PortA AND 0x0f

in deine Initialisierung und gut ist...

von der mechatroniker (Gast)


Lesenswert?

> Adresse = PortA AND 0x0f

Würde PINA verwenden aber gut...

von Justus S. (jussa)


Lesenswert?

ups stimmt...gar nicht bemerkt...

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.