Hallo! Ich hoffe ich bin bei euch richtig...? Kurze Vorgeschichte Ich möchte meine Ampelsteuerung an meiner Modellbahn ein wenig erneuern.Nun habe ich ein Programm geschrieben für den PC zur Steuerung (Software).Für die Steuerung der Hardware wollte ich nun mehrere ATmega8 einsetzen... Den ersten als Zentrale (Master) der die Befehle vom PC über RS 232 bekommt, das funktioniert auch und dann die dementsprechende Anzahl an Slave's für jede Kreuzung. Das Programm in den ATmega's einzeln gesehen läuft ... und nun muß ich sie noch irgentwie zusammenbasteln aber wie ??? :-(( Ich habe mir damals ein AVR Buch (Roland Walter) und das Board gekauft und dies auch schon mehrfach gelesen. Das mit dem I2C ist nee tolle Sache, wenn man weiß wie.Das Grundprinzip davon habe ich ja verstanden, aber mit der Umsetzung da klemmt es gewaltig. Vielleicht könnte jemand so nett sein (und die Zeit aufbringen) mir zu helfen. Ich brauch immer ein wenig die Praxis um zu kapieren was da abläuft. Also ein Kurzer Code (wenn's den gibt ?) wäre das optimalste (Master-Slave1+Slave2 , LED in 1 an + LED in 2 an- gesteuert vom Master). Mir kommt es darauf an wie ich die Adresse im Slave bestimme bzw. vergebe? Gibt es da nur bestimmte Pins oder gibt es da einen Befehl den man verwenden muß damit der Slave weiß wo er die Adresse sucht? Und kann ich dann evt. auch auf Ereignisse reagieren die am Slave eintreffen, so das sie über den Master zum PC kommen? (erst wenn ich den ersten Teil verstanden habe) Ich verwende Bascom 1.11.8.3 und kann mit C oder Assembler nichts anfangen. Auf alle Fälle bin ich sehr lernwillig.....:-))) und ein kleiner Ahhhhh... Effekt wäre das tollste.. Danke schon mal im voraus Marcus
Wenn du fertige I2C-ICs wie den PCF8574 (acht digitale Aus/Eingänge) verwendest, wird die Adresse über die Beschaltung von eingen Pins am PCF festgelegt.
Hallo Rahul! Also danke erstmal für die Antworten! Ich dachte nicht, das das mit dem I2C das komplizierteste ist als ich damit anfing. Und einmal angefangen versuche ich es auch bis zum Ende zu bringen - koste es was es wolle und wenns auch ein paar µC sind. Naja und dann fange ich immer vorn an mit lesen und mir fällt immer zu jedem Thema was ein; so als Modellbahnfreund; da gibt es immer was. Nun bin ich beim I2C angelangt und das ist dabei rausgekommen. Marcus
Hallo Uwe! Danke dir auch für die schnelle Antwort. Gute Idee , darüber hatte ich noch nicht nachgedacht. Nachdem ich das Board hatte , habe ich mir 10 ATmegas bestellt. Bei 1,80€ fand ich das nicht als zu teuer. Und die Möglichkeiten sind ja rießig mit den µC. Dann hieß es esrt mal lesen und losbasteln, an Ideen sollte es nicht mangeln. Auch wenn man dies mit den I2C-IC machen kann , würde mich die Umsetzung mit den ATmega interessieren. Vieleicht kann man es ja später nochmal gebrauchen. Ich hefte mir soetwas immer ab und weiß dann wo es steht. Marcus
Suche mal nach einer I2C Bibliothek hier oder im Internet. Z.B. bei Peter Fleury. Leider sind die meisten Bibliotheken in C geschrieben (denke ich), so dass Du vielleicht etwas mehr suchen musst. Das Benutzen von fremden Bibliotheken ohne das man sie genau versteht ist IMHO nicht so schlimm, dazu sind es ja "fertige" libs. Also nur Mut und viel ausprobieren. Darin liegt ja auch der Reiz eines Hobbies. Ist alles erst einmal fertig, wird es langweilig ...
Hallo Pete! Danke dir auch für deine Antwort. Ich werde mich gleich mal auf die Suche machen, vieleicht finde ich ja was dazu. Und zum letzten Satz ... wie wahr, wie wahr Marcus
Bzgl. I²C und BASCOM: Wirf doch einfach mal einen Blick ins BASCOM-Handbuch. Eigentlich müsste es dazu einen "Programmierbaustein" geben. Wundere dich aber bitte nicht darüber, dass die I²C-Kommunikation ab einer gewissen Entfernung schnarchlangsam ist. Das Ding nennt nicht umsonst "inter IC communication" und ist eigentlich nur für den Datentransfer auf Platinen gedacht (gewesen). Aber ich habe ja eigentlich gar keine Ahnung...
Hallo Rahul! Danke für den Tip.Ich schau mal rein, vieleicht finde ich was brauchbares. Der Master in meinem Projekt soll ja den Slave's nur sagen Ampel x an oder aus.Die Steuerung ist ja dann im Slave und schaltet die Ampelphasen. Aber erst mal den einen Schritt und dann den nächsten.In dem Buch was ich habe ist das mit dem I2C ja auch beschrieben. Da ist der ATmega ein Master aber der Slave ist halt ein EEprom und der hat ja in dem Fall nur 8 Pins. Die 3 Pins die dort für die Adresse noch zur Verfügung stehen sind oder stehen fest. Sie werden ja mit Masse oder Vcc verbunden. Beim ATmega hat mir jemand gesagt ich soll die Pins high oder low setzen, naja soweit so gut. Ich würde sie erstmal als Eingang deffinieren, dann auf High oder low setzen und dann muß ich doch aber dem Ding sagen : " das ist dein Adressport " oder kann ich nur bestimmte Pins für die Adresse nutzen, so das der ATmega automatisch dort nachschaut und sagt ich bin gemeint ??? Ich weiß nur nicht, ob ich da mit meinen Gedanken richtig liege, und wenn "ja" ,fehlt nur noch der "kleine" Schritt zur Umsetzung.Dafür hatte ich vorhin am Anfang nach dem Code gefragt... So nun schau ich erstmal ins Handbuch. Marcus
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.