mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16Bit Controller nur 8Bit ansprechen


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich verwende einen dsPIC möchte aber nur z.B. von PORTB die ersten 
8 Bit mit C ansprechen, gibt es da irgendeine einfache Möglichkeit nur 8 
Bit´s anzusprechen ohne Maskierung oder ähnliches???

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ohne Maskierung oder ähnliches

Kaum.
Wer aber eines 16-Bit uC einsetzt, sollte in der Lage sein, diesen auch 
entsprechend zu propgrammieren.
Alternativ würde ich raten, mit einem kleineren Bauteil zu beginnen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^^Ja ne das geht schon klar diesen zu programmieren, nur wär ja nicht 
schlecht wenns da irgend ein Trick gäbe, eine einfache oder Maske oder 
ähnliches stellt mich nun nicht vor ein unlösbares Problem nur ist es 
ein wenig umständlich wie ich finde.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ich brauch so ein "großen" Controller, da ich keinen 8 Bit 
Controller kenne der schnell genug ist >30MIPS.

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder hat vlt. doch jemand eine Idee wie mans einfacher lösen könnte 
evtl. sind ja in der header Datei vom Controller die 8 Bit einzeln 
geheadert^^!!

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf wrote:
> Oder hat vlt. doch jemand eine Idee wie mans einfacher lösen könnte
> evtl. sind ja in der header Datei vom Controller die 8 Bit einzeln
> geheadert^^!!

Wie wäre es mit Makros ???

Schreib dir doch eine eigene Header Datei mit eigenen 
Zugriffsfunktionen.
#define u8 unsigned char
#define u16 unsigned int

#define PORTB_LSB(X_8BIT) PORTB=(((u16)(X_8BIT)&0x00FF)|(PORTB&0xFF00)
#define PORTB_MSB(X_8BIT) PORTB=((((u16)(X_8BIT)<<8)&0xFF00)|(PORTB&0x00FF)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo das hört sich gut an ich denke so werd ich es machen.

Danke Thomas

Autor: Tacho (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einem Infineon XC800  der kann >30MIPS und ist 8-bit

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es, wenn man erstmal schreibt was man überhaupt machen will und 
warum man glaubt, dafür 30 MIPS zu brauchen . . .

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Üblicherweise ist PORTB ein Makro wie
#define PORTB (*((unsigned short volatile*) 0x1234))

Anstatt als Basistyp einen short zu nehmen, kannst du natürlich auch 
eine Struktur oder Union nehmen, welche die einzelnen Ports/Bits von 
PortB reflektiert.

Entscheidend ist, welche Zugriffe der Compiler erzeugt bzw. erzeugen 
kann/darf. Isbesondere Atomizität (Atomarheit? ... bescheuerte 
Wörter...) sind von Belang.

Bei der Makro-Lösung von oben ist zu beachten, daß ein Zugriff in zwei 
Hardware-Zugriffen resultiert, weil das Makro "PORTB" doppelt. Damit 
liegt man rasch mal auf der Nase!

Johann

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dankeschön für die Antworten,
so was mein Vorhaben anbelangt ich will ein Audiosignal abtastet, mit 
den gesampelten Werten möchte ich eine FFT durchführen und anschließend 
das Ganze auf einem GLCD darstellen.
Die 30 MIPS hatte ich nur angedacht damit mein dargestelltes Signal 
einigermaßen synchron zur Musik ist, klärt mich bitte auf wenn das zu 
oversized ist.

Gruß Thomas

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.