Hallo Leute, brauch eure Hilfe weiß nicht mehr weiter... Ich habe einen PIC16F84A und wollte diesen programmieren, klappt (mittlerweile) auch alles bloß mein PIC spielt das kleine Testprogramm nicht ab und weiß nicht wieso... 5V Versorgungsspannung sind vorhanden und auch der Resonator arbeitet so wie er soll und trotzdem reagieren die LED´s bzw der PIC nicht... hoffe ihr könnt mir helfen grüße alex
alex ka schrieb: > mein PIC spielt das kleine Testprogramm > nicht ab und weiß nicht wieso... Ist ja auch keine Spielconsole
wie wäre es wenn du mal den Code bzw. das HEX mit Anhängst... Meine Glaskugel arbeitet sonst nicht. IN
Debugger hab ich und funktioniert auch... und hier ist auch noch alles was im Hex-Code steht :)
alex ka schrieb: > und hier ist auch noch alles was im Hex-Code steht Bitte: Quelltext als Quelltext und nicht als JPG anhängen. Was Du für "Hex-Code" hältst, hat mit Deinem Programm nichts zu tun.
Oh Gott, Quellcode als JPG, wer macht denn sonen Scheiß? Das *.asm als Anhang, sonst hilft Dir keiner! Peter
Rufus Τ. Firefly schrieb: > Was Du für "Hex-Code" hältst, hat mit Deinem Programm nichts zu tun. ok und wo finde ich dann den richtigen Hex-Code bei dem Programm? arbeite erst seit kurzem mit MPLAB und kenn mich deswegen noch nicht sehr gut damit aus
Peter Dannegger schrieb: > Oh Gott, Quellcode als JPG, wer macht denn sonen Scheiß? ... jene, bei denen das Programm nicht laufen, sondern spielen soll.
Wenn ich das richtig sehe, hängt der MCLR über 10k an VDD und über 1k and GND. Also mehr GND als VDD -> Prozessor steht im Reset. Schätze ich, da die Schaltung weiter links nicht sichtbar ist...
alex ka schrieb: > ok und wo finde ich dann den richtigen Hex-Code bei dem Programm? In Deinem Projekt Verzeichnis (bzw. Unterverzeichnis darin). Einfach mal mit dem Explorer reinschauen. Da findest Du das *.asm und *.hex. Peter
alex ka schrieb: > Autor: > > alex ka > (Firma: ka) Keine netten Kollegen in der Firma "ka", die dir weiterhelfen könnten?
Villa Kunterbunt schrieb: > ... jene, bei denen das Programm nicht laufen, sondern spielen soll. nimms halt bitte nicht gar so genau... Markus_AC schrieb: > Wenn ich das richtig sehe, hängt der MCLR über 10k an VDD und über 1k > and GND. Also mehr GND als VDD -> Prozessor steht im Reset. ok werd ich gleich mal abändern hoffe es hilft :) und mehr als das find ich leider nicht... und sorry Leute JPG geht schneller
Oder du änderst mal den Code so ab: ; Port A initialisieren und Tris Register setzten MOVLW B'11111111' ; APORT 0 - 7 Ausgänge MOVWF PORTA ; An den PORT Anlegen BSF STATUS,RP0 ; Page Select ausführen 1 MOVWF TRISA ; Ins Tris Register übernehmen BCF STATUS,RP0 ; Page select wieder auf 0 ; Port B initialisieren und Tris Register setzten MOVLW B'00000000' ; BPORT 0 - 7 Eingänge MOVWF PORTB ; An den PortB legen BSF STATUS,RP0 ; Page select ausführen 1 MOVWF TRISB ; PortB lesen und ins TRIS Register schreiben BCF STATUS,RP0 ; Page select wieder auf 0 dann funktioniert auch deine Portdefinition. UND DOKUMENTIERE WAS DU WILLST, nicht die Befehle. IN
Putzhilfe schrieb: > Keine netten Kollegen in der Firma "ka", die dir weiterhelfen könnten? leider nein :) die Ideen wo wir hatten haben nichts gebracht
alex ka schrieb: > und mehr als das find ich leider nicht... und sorry Leute JPG geht > schneller glaub ich nicht. Am schnellsten geht immer noch, wenn du das Assembler-File, so wie es ist ganz einfach unter 'Datei auswählen' hier im Forum anhängst. Das geht für dich am schnellsten und für uns auch.
@ IN: versteh deine Abänderung nicht... ich will doch dass der PORT B ein Ausgangsport ist und bei dir ist es dann ein Eingang dann funkutioniert doch das ganze Programm nicht mehr und ich müsste alles umbauen, um meine LED ansteuern zu können?
du schaltest die Page falsch in deinem Programm, probiere mal aus und schaue... Versuch macht Klug! IN
ohh und ja, der Kommentar ist natürlich Falsch, Eingang und Ausgang im Kommentar also nach dem ; ändern. Der Code ist Richtig. IN
alex ka schrieb: > Karl Heinz Buchegger schrieb: >> glaub ich nicht. > > meinst Du so? Genau so. Jetzt hast du auch eine Chance, dass sich jemand deinen Code nimmt, die Teile die er braucht mit Copy&Paste rausholt und die korrigiert. Vorher hätte er sie abschreiben müssen. Deine Chancen auf Hilfe steigen gewaltig, wenn du es deinem Helfer leicht machst, dir zu helfen. Zb dadurch, dass du ihm die Teile so zuarbeitest, dass er einfach damit arbeiten kann, ohne selbst zuviel Arbeit damit zu haben. (Von PIC versteh ich nichts. Daher klinke ich mich wieder aus)
IN schrieb: > ohh und ja, der Kommentar ist natürlich Falsch, Eingang und Ausgang im > Kommentar also nach dem ; ändern. Der Code ist Richtig. ok habs angeändert, aber es geht leider immer noch nicht... hab auch zwischen R30 und Gnd einen Schalter eingebaut um genügend Spannung zu bekommen, aber das Problem bleibt
schau mal hier: http://www.sprut.de/electronic/pic/programm/lauflicht/lauflich.htm Du mußt nur einen Pullup Widerstand 10K von MCLR nach 5V anschließen. Der Taster (Schalter) muß dann von MCLR nach Masse zum Reseten. Du kannst dein Programm zum debuggen auch "Stückchenweise" schreiben: Init LED AN Eingang Abfragen wenn 1 dann LED AUS so kommst du deinem Problem auf die Spur. IN
Also das Programm ist fehlerfrei... hab jetzt jeden Schritt simuliert... hab es auf den PIC geschrieben und danach ausgesteckt und den PIC auslesen lassen -> Programm ist auf den PIC aber es läuft nicht...? Hab die Schaltung auch nach den Angaben abgeändert
edit zu oben: PORTB wechselt im Simulator von 0x33 nach 0xCC im Takt
Miss mal bitte die Versorgungsspannung direkt am PIC-Pin. Und GND am besten auch gleich mal überprüfen
..sonst auch mal messen, ob sich direkt an den PORTB Pins was tut.. vor dem OC-Treiber da. Ich hoffe, Du hastn Scope?!
ok, dann ziehe den prozessor raus. Nimm einen Draht und von Masse zum ULN2803 Schalteingang und Prüfe ob deine LED dann Leuchtet. Wen ja dann Programm auf Dauer An / Aus schreiben und Nachmessen mit einem Multimeter ob die Richtige Ansteuerung da ist. IN
@ Tom L.: Versorgungsspannung von 5V liegen an und GND ist auch verbunden... An den Ports tut sich leider gar nichts? und ja ich hab ein Scope zumindest in der Arbeit :)
ok hab jetzt grade noch eine Verbindung die da nicht sein sollte gefunden und sie beseitig... mein Pic arbeitet jetzt und der Port B schaltet je nachdem ein oda aus aber es kommt noch nicht an den LEDs an... der ULN schaltet nicht richtig ein und aus
heißt also, direkt an den Pins tut sich auch nix? dann würd ich mal ganz ketzerisch behaupten, dein PIC is im Eimer. auch bitte nochmal den MCLR Pin messen, ob der wirklich nach Vdd gezogen wird!
ok... war die Verbindung im Schaltplan schon falsch? ich seh da nix, oder wars ne Lötbrücke oder sowas?
schaltet nicht richtig ein und aus... was heißt das genau? und an allen Pins oder nur an den beiden wo die Widerstände davor sind?
alex ka schrieb: > ok hab jetzt grade noch eine Verbindung die da nicht sein sollte > gefunden und sie beseitig... Tom L. schrieb: > war die Verbindung im Schaltplan schon falsch? Electrons don't read schematics and didn't care about ;-).
es funktioniert der ULN war ein PIN10 der in der Luft hängen sollte mit Masse verbunden :) Danke für eure Hilfestellungen
Tom L. schrieb: > ok... war die Verbindung im Schaltplan schon falsch? ich seh da nix, > oder wars ne Lötbrücke oder sowas? was genau falsch war hab ich noch nicht raus aber es lag am MCRL ^^ muss jetzt no schauen was genau falsch war aber denke nicht dass es im Schaltplan schon falsch ist
woher weißt Du denn nun, dass es am MCLR lag? was hast Du denn gemacht um das zu ermitteln?
Tom L. schrieb: > woher weißt Du denn nun, dass es am MCLR lag? was hast Du denn gemacht > um das zu ermitteln? weil ich den mal nachgemessen hab und da ist mir immer wieder die Spannung eingebrochen also hab ich die Verbindungen mal überprüft bzw neu gemacht und jetzt gehts :)
Hallo, für mich ist die Ursache aus der Beschaltung des MCLR-PIN klar zu erkennen: Weniger als 1V am MCLR-Pin bei 5Vdd, bzw. wird die erforderliche Vpp nicht erreicht! Das hat zu Anfang bereits Markus_AC beschrieben: Markus_AC schrieb: > Autor: Markus_AC (Gast) > Datum: 28.11.2012 10:34 > Wenn ich das richtig sehe, hängt der MCLR über 10k an VDD und über 1k > and GND. Also mehr GND als VDD -> Prozessor steht im Reset. mfg GroberKlotz
da hast du natürlich recht. Aber im Schaltbild ist auch eine Diode von MCLR zu einem Kontakt, das dort auch direkt 5V Anliegen könnten (der Plan war ja nicht vollständig) würde nur Messen helfen. Das wird gerne gemacht um ICP zu machen. Die Bank wurde nicht Zurückgeschaltet vorm Tris, deshalb hätte es ehe nicht Funktioniert. Beim 16F84 fängt der RAM auch bei 0x10 an, er hat halt 0x0C drin... ist ja kein Fehler. Ich habe Versucht ihm generel die Herangehensweise zu Beschreiben damit er beim nächsten mal alleine weiß wie er das macht und nicht wieder in ein Forum muß. Ist nie Verkehrt wenn man Soft von Hardwarefehlern Unterscheiden kann. IN
IN schrieb: > Ich habe Versucht ihm generel die Herangehensweise zu Beschreiben damit > er > beim nächsten mal alleine weiß wie er das macht und nicht wieder in ein > Forum muß. Ist nie Verkehrt wenn man Soft von Hardwarefehlern > Unterscheiden kann. nur so nebenbei der "er" ist eine Sie :D und ja ich bedanke mich sehr für eure ganze Hilfe :)
Bitte gerne geschehen, und ebenfalls Danke für die Rückmeldung. Meist hört man ja nichts mehr wenn alles Funktioniert. Und Entschuldigung für den "ER"... 8-) IN
Versuch mal die Verbindung zwischen Pickit und der MCLR-Leitung nach dem Brennen zu unterbrechen. Dann müsste die MCLR-Leitung durch einen Pull-Up Widerstand auf High gezogen werden und dann müsste das Programm laufen. Natürlich musst du den Pic dann mit externer Spannungsquelle versorgen, da du ja keinen Schalter zur unterbrechung eingebaut hast.
IN schrieb: > Bitte gerne geschehen, und ebenfalls Danke für die Rückmeldung. > Meist hört man ja nichts mehr wenn alles Funktioniert. > Und Entschuldigung für den "ER"... 8-) Kein Problem kurz danke sagen muss schon sein wenn man so schnelle ung gute Hilfe bekommt :) macht überhaupt nichts wollt es nur mal erwähnt haben ^^
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.