Hallo, habe schon einige Beiträge durchforstet nur bin ich leider zu keinem positiven Ergebnis gekommen. Also mein Problem beginnt, vermutlich, schon beim Flashen des PICs. Ich benutze PICSTART Plus in Verbindung mit MPLAB IDE um den PIC zu Flashen, jetzt hab ich mir ein kleines ASM Programm geschrieben um nur mal eine LED zu flashen, leider Funktioniert das ganze nicht wirklich! Mein nächster Gedanke war dass es ja an meinem Programm liegen könnte, darum hab ich mir mal den Code von http://www.bertys.ro/pic12F675/FlashLed.asm raufgeflasht, leider funktioniert dieser auch nicht wirklich bei mir! Darum bin ich zu dem Gedanken gekommen, dass ich etwas beim Flashen falsch machen muss. Meine Vorgehensweise: MPLAB IDE v8.33 Starten -> mein angelegtes .mcp-Projekt öffnen -> den Code habe ich unter dem Ordner Source Files als .asm-Datei integriert -> Programmer auswählen -> Programmer Enablen -> Erase Flash Device -> Project>>Build All ("BUILD SUCCEEDED") -> Programmer>>Programm -> Pic in mein Steckbrett und Spannung einschalten! KEINE LED leuchtet :( Hat vlt jemand eine Idee worans liegen kann? Is mein Erster PIC also es ist denk ich mal jeder Fehler erdenklich :( Infos: PIC 12F675 PICSTART Plus MPLAB IDE v8.33 ----uu---- +5 V ---|vdd vss|--- GND LED1 ---|gp5 gp0|--- LED4 LED2 ---|gp4 gp1|--- LED3 NC ---|gp3 gp2|--- NC ---------- Zwischen +5V udn GND hängt noch ein 100nF Kondensator und vor den LEDs is ein 220R Widerstand! Ich bin für jeden Tipp dankbar! mfg moep.at
Michael, habe das ASM-Programm nicht angeschaut, so dass ich darüber nichts sagen kann. Aber wenn das Flashen ohne Fehlermeldungen vonstatten geht, ist anzunehmen, dass das Programm auch drin ist. Hast Du mal an den Ports mit einem Messgerät gemessen (Oszi, Multimeter)? Gruß Dieter
Hallo, ja habe ich auch schon getestet, leider kein Signal zu messen, hab an allesn 4 LED Pins einen Kanal vom Oszi dran hängen. Den PIC ansich habe ich auch schon einmal getauscht. Habe jetzt auch noch einmal versucht ein anderes Programm zu flashen: ----------------------------------------------------------------------- list p=12f675 ; list directive to define processor #include <p12f675.inc> ; processor specific variable definitions errorlevel -302 ; suppress message 302 from list file __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_CLKOUT ORG 0x000 ; processor reset vector goto main ; go to beginning of program main BSF CMCON, CM0 ; GP0,1 von Comparator auf digital BSF CMCON, CM1 BSF CMCON, CM2 BSF STATUS, RP0 ; Bank 1 CLRF ANSEL ; GP0,1,2,4 von ADC auf digital movlw b'00000000' movwf TRISIO BCF STATUS, RP0 ; Bank0 bsf GPIO, 0 loop goto loop END ; directive 'end of program' ------------------------------------------------------------------------ - leider auch ohne Erfolg. mfg Michael
hast du /MCLR über einen Widerstand (10k oder so) auf Vdd gelegt? Sonst könnte es sein das der pin auf GND bleibt und der Controller bleibt im Reset. Du hast deinen Code ja auf INTRC_OSC_CLKOUT gestellt, also internen Takt (~4MHz). Üblicherweise hat man noch eine Anweisung um OSCCAL mit einem Kalibrierwert zu beschreiben. Der werksseitig ausgemessene Wert für OSCCAL liegt auf der letzten Speicherzelle. --> Such dir mal aus dem MPLAB Programmverzeichnis das passende Template raus, da sieht man wie das mit OSCCAL geht. Vermutlich müsste es aber auch so gehen, nur halt Takt ungenau.
Michael, wenn Du MCLRE_ON machst, muss Du Pin4 auf High setzen, sonst hast Du möglicherweise permanent Reset. Offen lassen sollte man Pins sowieso nicht. Dieter
Also die Zeile >loop goto loop ist Blödsinn, da bleibt das Programm, der PIC, drin hängen und es tut sich extern gar nix. Der erste Programmcode ist mir nun zu lang um zu schaun ob es da irgendwo hängen würde, vielleicht mal Simulieren in MPLAB ;)
Das ist richtig. Fatal ist, dass mehrere Fehler da sind. Es ist erst mal wichtig, ein lauffähiges Programm zu haben und zu laden. Dann den MCLR entweder zu deaktivieren oder den Pin über einen Widerstand auf High zu legen. Dieter
HEy, DANKE DANKE DANKE DANKE! es war der Widerstand kaopauftisch oft sinds die einfachsten dinge ;) PS: das der Code kacke is is mir klar ;) hab das erste mal nen Pic in der hand und wollte nur mal ne LED einschalten :)
>ist Blödsinn Ach ja. Schon darüber nachgedacht? >bleibt das Programm, der PIC, drin hängen und es tut >sich extern gar nix Aber z.B. bleiben gesetzte Ports stehen. Für einen Test ist diese Verwendung des goto-Befehls gängige Praxis.
Du hast in der Config MCLRE_ON eingeschaltet. Damit sagst du dem PIC, das der PIn GP3 der Resetpin ist. Du musst also entweder an diesen PIN einen Pullup 10k Ohm gegen +5V schalten oder MCLRE_OFF schalten. Dein PIC Resettet vermutlich, da du den GP3 offen gelassen hast. Gruß Sven ... mal wieder zu spät. Man sollte halt nicht während einem Seminar versuchen Beiträge zu beantworten...
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.