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


von Thomas (Gast)


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???

von Klaus (Gast)


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.

von Thomas (Gast)


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.

von Thomas (Gast)


Lesenswert?

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

von Rolf (Gast)


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^^!!

von Sebastian B. (mircobolle)


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.
1
#define u8 unsigned char
2
#define u16 unsigned int
3
4
#define PORTB_LSB(X_8BIT) PORTB=(((u16)(X_8BIT)&0x00FF)|(PORTB&0xFF00)
5
#define PORTB_MSB(X_8BIT) PORTB=((((u16)(X_8BIT)<<8)&0xFF00)|(PORTB&0x00FF)

von Thomas (Gast)


Lesenswert?

Jo das hört sich gut an ich denke so werd ich es machen.

Danke Thomas

von Tacho (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

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

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Üblicherweise ist PORTB ein Makro wie
1
#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

von Thomas (Gast)


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

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
Noch kein Account? Hier anmelden.