Hallo Zusammen, ich habe mir ein Experimentalboard mit einem 8051 selber aufgabaut, aber bis jetzt habe ich immer nur die on-chip Einheiten in Betrieb genommen. Kann mir vielleicht irgend jemand, weiterhelfen wie ich in C die peripherie Einheiten wie LCD, zusätzliche Ein- und Ausgänge, usw. ansprechen kann!? Muss ich das über Zeiger realisieren, oder gibt es noch weitere Möglichkeiten!? Ich würde mich über ein Codebeispiel freuen!! Vielleicht mit einer Beschreibung der Zeilen!? Gruß Benjamin
Peripherie schließt man an die Portpins an und steuert sie durch Setzen und Löschen der Portpins an. Manche Peripherie kann man auch über Interfaces anschließen (SPI, I2C, 1-Wire) bzw. als Single-Master diese Interfaces in Software nachbilden. Manche Peripherie kann man auch als Memory Mapped IO anschließen, d.h. an den SRAM-Bus. Bei LCDs sieht man das manchmal, allerdings sind die dann oft außerhalb der Spezifikation (Bus-Timing ist zu kurz). Um Beispiele zu finden, nutze die Suchfunktion. Es aufm Silbertablett serviert zu verlangen ist schon etwas arg. Peter
Dank Peter, aber wie schon geschrieben habe ich meine Board schon fertig!! Alles ist über den Parallelbus angeschlossen und kann wie ein RAM über die Ports 0 und 2 angesprochen werden. In ASM würde ich das ja hinbekommen, aber wie mache ich dies in C!? Also nochmal die Frage: Daten per Zeiger auf eine Adresse schieben!? Oder wie macht man sowas!? Gruß Benjamin
Wenn Du irgendwelche ICs als MMIO verdrahtet hast, kannst Du sie über einen Pointer auf ihre Adresse ansprechen: #define blublu 0x8000 // irgendein MMIO *((unsigned char xdata *)blublu) = blabla; // blabla auf XRAM-Adresse blublu ausgeben. bzw.: blabla = *((unsigned char xdata *)blublu); // von XRAM-Adresse blublu einlesen Peter
Bei Keil gibts dazu auch noch irgendwo ein XBYTE[] Makro das einem bissel tip arbeit abnimmt. Einfach mal in der Hilfe nach xbyte suchen Gruß Tobias
Hallo Zusammen, vielen Dank für die Hilfe. Ich habe jetzt auch endlich mein LCD in Betrieb nehmen können. freu Entschuldigung das ich das falsche Forum gewählt hatte... ich dachte dort könne man mir am ehesten helfen. Gruß Benjamin
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.