-
        

Ergebnis 1 bis 4 von 4

Thema: Port Pins namen geben und strukturieren

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2006
    Alter
    30
    Beiträge
    150

    Port Pins namen geben und strukturieren

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo!

    So meine Code-Restaurierung/Umstrukturierung geht los. Also Problem. Hab mal Code geschrieben und das so ziemlich auf: Es muss nur funktionieren. Mittlerweile schau ich mir den wieder an, 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:


    Code:
    extern volatile near unsigned char       LATA;
    extern volatile near struct {
      unsigned LATA0:1;
      unsigned LATA1:1;
      unsigned LATA2:1;
      unsigned LATA3:1;
      unsigned LATA4:1;
      unsigned LATA5:1;
      unsigned LATA6:1;
    } LATAbits;
    Hab ich dann daraus gemacht:

    Code:
    extern volatile near struct {
      unsigned LATA0:1;
      unsigned LATA1:1;
      unsigned LATA2:1;
      unsigned LATA3:1;
    } LCD_DATA;
    und die wollt ich dann halt mit
    LCD_DATA = 0x3 oder irgendwas ansprechen. Wär ja hübsch. Kann ich nur die wirklich gewünschten bits ändern und nix falsch machen. Künstlich auf 8 bits aufblasen das struct funktioniert auch nicht.

    hat da wer eine Ahnung?

    lg,
    theo

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    20.07.2009
    Beiträge
    40
    LCD_DATA.LATA0 = 1;
    LCD_DATA.LATA1 = 1;
    LCD_DATA.LATA2 = 1;
    LCD_DATA.LATA3 = 1;

    Vielleicht solltest Du doch mal C-Grundlagen besser verinnerlichen?

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2006
    Alter
    30
    Beiträge
    150
    Na ja nein eben nicht. Weil dann weiß ich ja schon beim schreiben des Programms welche Ports ich verwende und upps beim nächsten mal tu ich andere Pins als die vom Port a verwenden und ausbessern im .h file und leider gehts nicht so wie du das gemeint hast! So ein Pech!

    Habs jetzt anders gemacht. Also eben eine Methode der ich eben übergebe was ich setzen will, bla bla
    im grunde genommen nicht
    LCD_DATA = 0x04; sondern LCD_DATA_WRITE(0x04);
    Damit kann ich eben im .h File nehmen was ich will und geht immer. Und mit dem Write und 2 Klammern kann ich leben!

    lg,
    theo

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    20.07.2009
    Beiträge
    40
    sorry, aber das habe ich aus Deiner Problembeschreibung nicht so entnommen...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •