Hallo! arbeite mit PIC18F2550
Also Problem. Hab mal Code geschrieben und das so ziemlich auf: Es muss
nur funktionieren. Mittlerweile schau ich mir den wieder an, will ihn
wieder verwenden, will was umändern und es fällt mir auf, uff, da muss
man sich ja erst wieder einlesen.
Also hab ich mir gleich gedacht, ich strukturier die Bezeichnungen
meiner Portpins neu, mit denen ich arbeite. Problem diesmal ist, dass
eben an einem Port nicht nur mein LCD (im 4 Bit Mode) hängt, sondern
auch andere sachen. Und ich damals ziemlich wüst gleich den ganzen Port
neu gesetzt hab, weil ich eben die anderen 4 Pins nicht gebraucht hab.
Also muss ich mir das alles anschauen und umbessern. Und dabei dacht ich
gleich an weitere Verbesserungen.
Also ich schreib mal zusammen was ich so wollte:
1: bessere Bezeichnungen für jeden Pin, wenn ich mal separat nur einen
Pin -> gut war nicht schwierig
2: neue Strukturen herstellen, damit ich einige Pins zusammenfasse und
damit auf die zugreifen kann aber nicht andere störe.
Und da hakts jetzt ein bisschen:
ich hab mir die schreiberei aus den anderen Files von Microchip
rausgesucht und mal gut glück versucht obs geht:
von Microchip
1 | extern volatile near unsigned char LATB;
|
2 | extern volatile near struct {
|
3 | unsigned LATB0:1;
|
4 | unsigned LATB1:1;
|
5 | unsigned LATB2:1;
|
6 | unsigned LATB3:1;
|
7 | unsigned LATB4:1;
|
8 | unsigned LATB5:1;
|
9 | unsigned LATB6:1;
|
10 | unsigned LATB7:1;
|
11 | } LATBbits;
|
Meine Variante im Code:
1 | extern volatile near struct {
|
2 | unsigned LATB0:1;
|
3 | unsigned LATB1:1;
|
4 | unsigned LATB2:1;
|
5 | unsigned LATB3:1;
|
6 | } LCD_DATA;
|
Wollts dann eben ansprechen mit LCD_DATA = 0x3 oder irgendwas, aber da
spinnt der Compiler. "Type Mismatch in Assignment" Habs versucht
künstlich auf 8 bit aufzublasen aber ging auch nicht