Hallo zusammen, hat schon einmal jemand einen Microchip Pic als Slave programmiert? Mein konkreter Anwendungsfall wäre folgender. Ich möchte einen Pic als I2C-Slave programmieren. Dieser sollte zyklisch A/D-Werte einlesen (10-12 A/D-Wandler Eingänge) und diese auf Anforderung von einem Master (ebenfalls ein Microchip Pic) per I2C an den Master übermitteln. Das ganze möchte ich so gestalten, daß der Master angeben kann, von welchem A/D-Wandlereingang der Wert vom Slave gesendet werden soll. Das ganze wird von mir in C programmiert. Wenn jemand dazu Tips hat oder eventuell auch schon Sourcecode (von dem ich gerne profitieren würde smile ), wäre es nett, wenn ihr dazu schreiben könntet. Gruß Nuecke
Ja, läuft hier - aber nicht in C. Da gibt es aber Tausende Beispielprogramme in Netz - in jeder Sprache. Sicher auch auf der Seite von Microchip. Sieh in das Datenblatt von dem PIC - da steht sehr viel drin ! Im Grunde sieht man sich ganz genau an, welche Zustände der I2C-Empfänger haben kann (Start,Stop,Parity,NAK...). Dann muß man das alles in eine INT-Routine packen. Die I2C-Hardware löst immer schöne IRQ aus, die man löscht und bedient. Sieh Dir vor allem jedes Bit an und sieh nach, was es bedeutet. Teilweise mußt Du Fehler-Bits selbst löschen (OV), teilweise kannst Du erst Werte schreiben, wenn bestimmte Bits gelöscht sind (BF) oder man wartet auf ein Bit (BCLIF)... Die Adressierung mußt Du vorher mit einer Transmission vom Master übertragen, und dann kann der Master ja einen Receive durchführen und der Slave liefert die richtigen Daten.
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.