Hallo,
Ich hab einen für mich kuriosen Fehler bei meinem PIC. Ich werde nicht
gleich CODE snippets hochladen, da der Fehler vlt. bekannt ist.
Mein Programm hat einen Interrupt, in diesem werden ankommende Daten
aufgenommen und in der mainschleife wieder ausgegeben.
Ich lasse mir das ankommen der Daten sowie das ändern der Daten über die
LEDs anzeigen und es funktioniert. Aber am Ausgang kommt nix raus.
Klingt als hätt ich die Ausgänge falsch konfiguriert. Jetzt lad ich das
Programm neu in den Programmspeicher ohne Änderung daran vorzunehmen und
noch bevor das Programm im Speicher ist (währrend der Ladebalken sich im
MPLAb noch bewegt) , kommen die Daten auf einmal am Ausgang raus. Weißt
das auf einen Bug hin oder auf falsch programmiert? wie kann etwas beim
neuladen gehen, aber beim ersten mal nicht?
Viele Grüße
Ich verwende das Pickkit3 und den bezahlten Compiler für den
PIC18LF8722.
MCLRE hab ich OFF, habs aber jetzt mit ON probiert und es hat sich nix
geändert.
Volker S. schrieb:> Die Versionen der IDE und des Compilers wären auch noch> interessant und> ob du das PICkit gerade als Debugger oder Programmiergerät verwendest.
Patrick S. schrieb:> Ich verwende das Pickkit3 und den bezahlten Compiler für den> PIC18LF8722.>> MCLRE hab ich OFF, habs aber jetzt mit ON probiert und es hat sich nix> geändert.
Ok, den bezahlten Comp. ist schon mal gut. Aber das Pickit 3 ist ein
Schwachsinn, um ehrlich zu sein. Bei mir haben die Programme meistens
nur zufällig programmiert(habe den gratis Comp.) verwendet. Wenn ich das
Programm in MikroC hineingespielt habe(mit veränderter Syntax) hat es
einwandfrei funktioniert.
Verzweifelt an PIC schrieb im Beitrag #5308848:
> Aber das Pickit 3 ist ein> Schwachsinn, um ehrlich zu sein. Bei mir haben die Programme meistens> nur zufällig programmiert(habe den gratis Comp.) verwendet.
Da wirst du in den meisten Fällen einfach "zufällig" einen Fehler
gemacht haben...
Verzweifelt an PIC schrieb im Beitrag #5308848:
> Ok, den bezahlten Comp. ist schon mal gut.
Was soll denn daran gut sein. Welcher Compiler genau ist es denn nun?
Man kann ja durchaus unterschiedliche kaufen (C18, XC8, MicroE, CCS...)
Patrick S. schrieb:> Pickkit 3 wird als Programmiergerät eingesetzt!
Ist denn das Programm schon fertig? Läuft alles?
Wenn nicht, dann macht das doch gar keinen Sinn!
Es spielt auch keine Rolle. Da ist nix komplexes dabei und es
funktioniert sowohl im Debug modus nicht, als auch wenn ich es nur zum
programmieren nehme.
Patrick S. schrieb:> Es spielt auch keine Rolle.
Im Debug Modus müsste aber eine Fehlermeldung kommen, wenn das Programm
nicht läuft. Wenn nicht passiert, was du erwartest, kannst du einfach
auf Pause drücken, und siehst sofort, wo sich das Programm rumtreibt...
Volker S. schrieb:> Verzweifelt an PIC schrieb im Beitrag #5308848:>> Aber das Pickit 3 ist ein>> Schwachsinn, um ehrlich zu sein. Bei mir haben die Programme meistens>> nur zufällig programmiert(habe den gratis Comp.) verwendet.>> Da wirst du in den meisten Fällen einfach "zufällig" einen Fehler> gemacht haben...
Hast schon recht. Aber wenn das Programm dann mit dem MikroC
Programmiergerät funktioniert hat?
Verzweifelt an PIC schrieb im Beitrag #5308912:
> Aber wenn das Programm dann mit dem MikroC> Programmiergerät funktioniert hat?
MPLABX hat schon seine Tücken und kann ganz schön auf den Nerv gehen.
Nur sitzt der Fehler trotzdem in den meisten Fällen auf dem Stuhl vorm
Rechner. (ist zumindest bei mir so ;-)
Volker S. schrieb:> Verzweifelt an PIC schrieb im Beitrag #5308912:>> Aber wenn das Programm dann mit dem MikroC>> Programmiergerät funktioniert hat?>> MPLABX hat schon seine Tücken und kann ganz schön auf den Nerv gehen.> Nur sitzt der Fehler trotzdem in den meisten Fällen auf dem Stuhl vorm> Rechner. (ist zumindest bei mir so ;-)
Keine Sorge! Bei mir auch. Ich hab mich jetzt sehr an MikroC
angefreundet, kostet zwar 200€, aber ist top. Kann ich dir nur
empfehlen, genauso dem TO.
Verzweifelt an PIC schrieb im Beitrag #5308912:
> Hast schon recht. Aber wenn das Programm dann mit dem MikroC> Programmiergerät funktioniert hat?
Irgend was lauft bei der Bedienung MPLABx&PicKit3 falsch.
Ab und an Compiliert MPLABx bei mir nicht mehr das Was aktuell im Editor
ist oder schreibt ein altes HexFile. Irgendwas in dieser Richtung Halt,
MPLABx neu starten und gut is.
Und ja, beim programmieren mit dem PicKit3 rennt das alte Programm
zwischendurch kurz 1(2?) wieder los. Kann also daraus an den Pin
rütteln.
Was mich auch nur zu einem Schluss bringt, der PicKit3 hält denen PIC,
nach dem programmieren im Reset fest! Schon mal den PicKit abgezogen?
Verzweifelt an PIC schrieb im Beitrag #5308936:
> Ich hab mich jetzt sehr an MikroC> angefreundet, kostet zwar 200€, aber ist top. Kann ich dir nur> empfehlen, genauso dem TO.
Ich brauche was, das absolut kostenlos ist und auf Windows, MacOS und
Linux läuft, damit unsere Studies das auch problemlos auf ihren privaten
Rechnern installieren können.
Teo D. schrieb:> Was mich auch nur zu einem Schluss bringt, der PicKit3 hält denen PIC,> nach dem programmieren im Reset fest! Schon mal den PicKit abgezogen?
Kommt drauf an, ob "Hold in Reset" gedrückt ist.
Volker S. schrieb:> Verzweifelt an PIC schrieb im Beitrag #5308936:>> Ich hab mich jetzt sehr an MikroC>> angefreundet, kostet zwar 200€, aber ist top. Kann ich dir nur>> empfehlen, genauso dem TO.>> Ich brauche was, das absolut kostenlos ist und auf Windows, MacOS und> Linux läuft, damit unsere Studies das auch problemlos auf ihren privaten> Rechnern installieren können.
Aso ok. Dann ist das wohl besser.
Teo D. schrieb:> Was mich auch nur zu einem Schluss bringt, der PicKit3 hält denen PIC,> nach dem programmieren im Reset fest! Schon mal den PicKit abgezogen?
Hab alles probiert. Hardware ausgetauscht, sogar das Oszi. Software
nochmal deinstalliert und installiert usw. Also den RESET hab ich nicht
betätigt. Soviel technisches Verständnis hab ich noch hahaha
Verzweifelt an PIC schrieb im Beitrag #5308949:
> Also den RESET hab ich nicht> betätigt. Soviel technisches Verständnis hab ich noch hahaha
Ist jetzt nicht so deutlich zu sehen in der IDE.
Unsere Studies bringen das durch planloses rumklicken immer wieder hin
;-)
Volker S. schrieb:> Verzweifelt an PIC schrieb im Beitrag #5308949:>> Also den RESET hab ich nicht>> betätigt. Soviel technisches Verständnis hab ich noch hahaha>> Ist jetzt nicht so deutlich zu sehen in der IDE.> Unsere Studies bringen das durch planloses rumklicken immer wieder hin> ;-)
Tja wegen planlosen Rumklicken habe ich schon viel angestellt. Deshalb
habe ich die IDE schon öfters aus dem Fenster werfen wollen, obwohl es
mein Fehler war
Volker S. schrieb:> Ist jetzt nicht so deutlich zu sehen in der IDE.
Ja, da kann man auch in nem Menü ein Häkchen setzen, nicht nur den
Button drücken.
Ob da ab u. an was durcheinander kommt, nur wo, vor oder hinter dem
Monitor?
Volker S. schrieb:> Patrick S. schrieb:>> Es spielt auch keine Rolle.>> Im Debug Modus müsste aber eine Fehlermeldung kommen, wenn das Programm> nicht läuft. Wenn nicht passiert, was du erwartest, kannst du einfach> auf Pause drücken, und siehst sofort, wo sich das Programm rumtreibt...
Das spielt in sofern keine Rolle, weil es kein unterschied macht, da im
DEBUG Modus genau das gleiche rauskommt. Es läuft und es werden keine
Fehler und nichts angezeigt.
Das Programm läuft, ich muss für die Asugabe jedoch zwischen drin den
Resetbutton drücken bzw. das Programm neuladen. Das weißt darauf hin,
dass durch den Reset irgendetwas zurückgesetzt wird.
Geupdated hab ich jetzt auch alles, immer noch gleicher Fehler. Leider
hab ich nur das Pickkit 3 um herraus zu finden ob es daran liegt.
Patrick S. schrieb:> Das Programm läuft, ich muss für die Asugabe jedoch zwischen drin den> Resetbutton drücken bzw. das Programm neuladen. Das weißt darauf hin,> dass durch den Reset irgendetwas zurückgesetzt wird.
Dann würde ich sagen dein Programm hat irgendwo einen Fehler. Vermutlich
in Zeile 42 ;-). (soll heißen, ohne einen Code zu sehen, wird dir
vermutlich keiner weiter helfen können)
Kann auch ein ganz einfaches/abgespecktes Programm sein, welches den
Fehler aber immer noch zeigt.
Sorry ich schick mal noch keinen Code, da ich den Fehler weiter
einschränken konnte. Ich hab mir jetzt mit dem Oszi jeden Kanal
angeschaut. Und RH4 bringt einfach keinen Pegel, bei allen anderen kommt
das rinchtige raus. erst wenn ich den Reset Button drücke kommt der
richtige Pegel. Nun zum Kuriosum. Ich hab einen anderen Port verwendet
und hab den gleichen Effekt an einem anderen Pin. Der Controller muss
irgendwie überfordert sein mit der Pinbelegung. Kann mir aber immer noch
nicht erklären, wieso es dann nach dem drücken des Resets geht.
Patrick S. schrieb:> Ich hab einen für mich kuriosen Fehler bei meinem PIC.
Ohne jetzt weeter gelesen zu haben die PIC Klassiker
1.Read modify write problem
2. Nicht abgeschaltete Funktionen wie analog ports, PWM ...
Das Problem ist glaub ich gelöst. Bei den Ports hatte ich auch alles
abgeschalten und doppelt kontrolliert. Keine Ahnung. hab das
Entwicklungsboard gewechselt und zack ging alles. War vlt alles nur
Karma. Trotzdem kurioses Problem, dass die Pegel ohne einen Reset nicht
richtig ankamen!
Nutzen von Erfahrung die andere haben...
Ich habe auch mit ähnlichen Fehler gekämpft. D diese Beitrag:
Beitrag "Unbenutzte Pins vom Mikroprozessor als Fehlerquelle."
Antwort von einem Erfahrenen:
> Defaultmäßig waren sie als Eingänge definiert. Die Lösung: Am Anfang> muss man> alle Ports vom Mikroprozessorsystem als Ausgänge definieren und sie auf> 0 setzen.> So schließt man das System gegen Störungen. Und meinen Anfänger Fehler> kann> man auch so verstehen. Man sieht nur die Pins die man braucht...
Das ist eine Grundregel, kein Logikeingang darf undefiniert offen
bleiben. Insbesondere bei CMOS-Bauteilen.
Du kannst
* die Pins auf Eingang schalten und auf Masse legen
* die Pins auf Eingang schalten und über Pullups/-downs auf High oder
Low ziehen. Bei geringen EMV-Anforderungen reichen die internen Pullups,
sofern vorhanden
* die Pins auf Ausgang schalten
Was für Dich besser bzw einfacher ist hängt von Deiner Anwendung ab.
Für Profis:
* in einem Port einen Pin als Output High und einen als Output Low
schalten und dort einen Abblockkondensator dranhängen. Beruhigt die
anderen Pins des Portes (bzw des chip-internen power rails).
* in einem Port einen Pin als Output High und einen als Output Low
schalten und mit VDD bzw Gnd verbinden. Stützt die Versorgung der
anderen Pins ordentlich ab. Liefert aber auch Diskussionsbedarf im
Review.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang