mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Peripherie in C ansprechen....


Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hälst Du denn davon, im richtigen Forum zu posten?

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.