Peripherie in C ansprechen....

Gast #172382
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
Gast
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
Gast
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
Gast
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
Gast
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
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.