Mal funktioniert es, mal nicht

... komplette Frage anzeigen

1 Antwort

Ohje, oben definierst du Port A komplett als Ausgänge. Weiter unten weist du den Bits 0 bis 3 Eingänge zu und 4 und 5 als Ausgänge.

Ebenso hast du nirgendwo explizit den Prozessoer angegeben! Die Include Datei ist nur eine Hilfedatei in der für den Compiler all die möglichen Angaben zu der CPU stehen. Somit kann der Compiler nachprüfen, ob es den Befehl, die Register etc in diesem auch tatsächlich gibt. Ist sowas wie Plausibilitätskontrolle.

Ferner fängst du, bzw lässt due den Compiler bei Adresse 0 anfangen. Üblicherweise wäre 0100 besser, weil ab 0 einige Interruptadressen vorgesehen sind, sein können.

Du mit deinen Goto Anweisungen. Blickst du da selbst noch durch? Goto sind Sprünge zu Adressen ohne irgendeine Bedingung! Was soll das hin und her gehopse eigentlich? Erkläre mal den Sinn des Programmes und woher der Compiler wissen soll, welche Adressen da gültig sein sollen, wenn es zwar Sprunganweisungen, aber keine dazu gehörigen Adresslabels gibt.

Wo ist denn achtundzwanzig und null zum Beispiel? Wieso gibt es keine Bedinungen ab wann gesprungen soll und wann nicht. Eine End Anweisung sehe ich auch nirgends.

Hast du in der Include Datei nachgesehen ob die von dir verwendeten Befehle gültig sind? Mancher Befehl heißt bei den 18ner PIC anders als bei den vorgängermodellen.

Bist du mal auf die Idee gekommen, das im Debug Modus laufen zu lassen? Dann könntest du verfolgen von wo nach wo der Prozessor hopst und ob das dem entspricht, was du gewollt hast?

Ich habe mit den PIC Dingern nix zu tun, habe zwar zwei drei von denen und könnte .... aber ich habe mich auf die Atmel Prozessoren eingeschossen.

Schau mal bei www.sprut.de vorbei, der beschäftigt sich -soweit mich meine Erinnerung nicht täuscht- viel mit den PIC. Dort kannst du dir viel abgucken, viel lernen.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?