- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: PIC16F887 - I2C - LCD Version gestorben neue per LEDs

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    17.09.2009
    Beiträge
    17
    Anzeige

    Powerstation Test
    So habe jetzt mal etwas herumgebastelt und möchte wissen ob die Abfrageschleife so funktioniert wie ich es mir vorgestellt habe und ob die Kommunikation zwischen I2C -> MAX -> PIC -> LEDs so geht ?

    Zu der Abfrage
    Also je höher die Spannung=Abstand desto mehr (+1 weitere LED) leuchtet dazu auf.

    Im Anhang der Code, für jeden Tipp & Hilfe bin ich sehr dankbar!
    Angehängte Dateien Angehängte Dateien

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    17.09.2009
    Beiträge
    17
    Verzweiflung pur!

    Keine Ahnung was ich falsch mache, aber jetzt wird mir selbst "Init" als "illegal" deklariert -.-*.
    Wäre echt super wenn sich jemand bissle Zeit nehmen könnte und mir helfen!

    Gruss Pascal
    Angehängte Dateien Angehängte Dateien

  3. #13
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Als Voraussetzung für Erstellung ASM Programmen ist fast perfektes Kennen non MPASM, sonst verliert man nur Zeit für unnötige Suche von Fehler die vermieden werden könnten.

    Jeder Quellcode wegen Assemblerprogram z.B. MPASM muss sich nach sehr strengen Regeln halten und kann nicht beliebig strukturiert werden.

    Im Wiki befindet sich ein Muster der angehalten werden muss, weil andere Struktur vom MPASM nicht akzeptiert wird. Bei jedem Quelcode ist jedes Zeichen und seine Positin wichtig. Z.b. in der Zeile:

    #include <p16f887.inc> ; .inc Datei des PIC16F887

    ist das Zeichen "#" nicht zulässig, weil sie nur fur "#define" Anweisungen reserviert ist.

    Als nächster Fehler in deinem Quelcode finde ich im Unterprogram "Init" diese Zeile,

    RDATA EQU H'20' ; Speicherzelle für I2C Daten

    die als Definition vom Register an Anfang der Listing gehört. Weiter habe ich nicht gesucht. Wer Programme schreiben möchte muss sich leider an alle Regel des MPASM halten, damit sein Programm vom MPASM überhaupt in ".hex" Datei übersetzt werden könnte.

    MfG

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    17.09.2009
    Beiträge
    17
    Hallo,

    also das dies nicht geht wundert mich nun sehr:
    #include <p16f887.inc> ; .inc Datei des PIC16F887

    Habe meine bisherigen Programme immer auf diese Weise geschreiben und er hatte deshalbt nie herumgemeckert oder die .inc Datei nicht erkannt.


    Und das mit RDATA habe ich mal in die Init reingestellt, da ich schonmal probleme mit solchen Anweisungen hatte wenn ich diese direkt im Listing erwähne. Es war dann so.

    Im Listing: nicht erkannt
    In der Init: erkannt

    Ist jedenfalls grad alles sehr seltsam. Dennoch schonmal Danke!
    Gruss

  5. #15
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Ich habe noch nie Probleme mit Assemblerprogrammen, obwohl ich schon früher verschiedene Prozessoren und µC's programmiert habe. Jedes Assemblerprogram ist eben wie ein Befehlsatz für die CPU.

    Was für dich sehr seltsam ist, ist für mich einfach normal ...

    MfG

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Hallo zerb.

    Leider sitze ich grad am "falschen" PC, auf dem kein MPLAB installiert ist. Darum kann ich nur ein paar intuitive Dinge von mir geben.
    1) Wenn's Probleme mit der Syntax gibt, lohnt sich bestimmt der Griff zur Hilfefunktion: Suche nach den Begriffen 'init' und 'rdata'; vielleicht sind das reservierte Wörter des Assemblers oder des Präprozessors für die Objektcodeerzeugung. Ich selber arbeite bis dato auch nur auf der einfachsten Ebene (genau wie du: keine Code/Daten/sonstige Segmente, nur eine .ASM-Datei), aber "RDATA" riecht nach Speicherreservierung, Datensegment oder sowas.
    2) Ich bin beim Wechsel von Win2k nach Linux etwas auf die Nase gefallen, weil die in der zweiten Nachkommastelle erhöhte Präprozessorversion einige Unsauberkeiten meiner "freien Syntaxauslegung" nicht mehr schlucken wollte: das waren Berechnungen mit Adresslabels, die Klammern bei den Includedateien und vielleicht auch noch irgendwas mit dem Hash #. Sieh also bei den fraglichen Stellen nochmal genau in der Dokumentation nach, falls du einen Releasewechsel, z.B. durch Neuinstallation von MPLAB, mitgemacht haben könntest.

    Dann sind mir noch ein paar potentielle Fehlerquellen aufgefallen:
    - gemischte Verwendung von BANKSEL und expliziter STATUS-Bit RP0-Manipulation
    - Default-Destination z.B. bei xorwf
    - der größer/kleiner-Vergleich in der Kaskade sollte m.E. mit Subtraktion und dem Carry-Bit gemacht werden statt mit Zero. Vll. hab ich deinen Sourcecode aber noch nicht richtig verstanden.

    Gruß
    Christian.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test