Hallo, ich wende mich an euch, weil ich völlig verzweifelt bin. Seit Tagen versuche ich nun ein pic 18f2220 zu programmieren. Ich verwende den microchip c18 compiler in der mplab ide. Als Programmer benutze ich das pickit2 (extra gekauft, weil ich dachte, dass mit meinem alten programmer etwas nicht stimmt). Ich habe die Pfade für den linker, c18 und die lib kontrolliert. Als Programmbeispiel verwende ich folgendes: #include <p18cxxx.h> #pragma config OSC=HS,PWRT=ON,WDT=OFF,PBAD=DIG,LVP=OFF void main (void) { TRISA=0; TRISC=0; while (1) { LATC = PORTB; } } Ich bekomme keine Fehlermeldung: ---------------------------------------------------------------------- Release build of project `C:\pic\projekte\18f2220\bsp1.mcp' started. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Tue Nov 17 17:33:48 2009 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Deleted file "C:\pic\projekte\18f2220\main.o". Clean: Deleted file "C:\pic\projekte\18f2220\bsp1.cof". Clean Warning: File "C:\pic\projekte\18f2220\bsp1.hex" doesn't exist. Clean: Deleted file "C:\pic\projekte\18f2220\bsp1.map". Clean: Done. Executing: "C:\pic\microchip\MCC18\bin\mcc18.exe" -p=18F2220 /i"C:\pic\microchip\MCC18\h" "main.c" -fo="main.o" -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- Executing: "C:\pic\microchip\MCC18\bin\mplink.exe" /p18F2220 /l"C:\pic\microchip\MCC18\lib" /k"C:\pic\microchip\MCC18\bin\LKR" "main.o" /u_CRUNTIME /z__MPLAB_BUILD=1 /m"bsp1.map" /w /o"bsp1.cof" MPLINK 4.34, Linker Copyright (c) 2009 Microchip Technology Inc. Errors : 0 MP2HEX 4.34, COFF to HEX File Converter Copyright (c) 2009 Microchip Technology Inc. Errors : 0 Loaded C:\pic\projekte\18f2220\bsp1.cof. ---------------------------------------------------------------------- Release build of project `C:\pic\projekte\18f2220\bsp1.mcp' succeeded. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Tue Nov 17 17:33:48 2009 ---------------------------------------------------------------------- BUILD SUCCEEDED und auch der Programmer sagt, dass erfolgreich programmiert wurde. Aber der Pic macht einfach nichts!!!! Ich weiss überhaupt nicht mehr, was ich noch machen soll! Vielleicht hat einer von Euch noch einen Tip!? liebe Grüße, Martin
> #include <p18cxxx.h> wieso p18cxxx.h und nicht p18F2220.h ?!? > #pragma config OSC=HS,PWRT=ON,WDT=OFF,PBAD=DIG,LVP=OFF ich hoffe, du hast einen externen quarz und auch der rest stimmt, den du hier einstellst. füge zur sicherheit noch DEBUG=OFF hinzu. ich schreib das der übersichtshalber jeweils untereinander, etwa so: #pragma config OSC = HSPLL #pragma config WDT = OFF #pragma config LVP = OFF #pragma config DEBUG = OFF #pragma config PWRT = ON #pragma config BOR = OFF stell sicher, dass du nicht im debugg-modus bist: 1. bei MPLAB oben im balken "Release" und nicht "Debug" auswählen 2. im Menü: Debugger->Select Tool->None 3. im Menü: Programmer->Select Tool->PicKit2 > TRISA=0; > TRISC=0; > ... > LATC = PORTB; grundsätzlich sind ohne umstellung alle pins eingänge, doch zur sicherheit würde ich für PortB noch das hinschreiben TRISB = 0xFF; bevor ich einen neuen kontrollertyp gross programmiere, programmiere ich als erstes immer ein blinklicht. einfacher geht es nicht zu überprüfen, ob alle einstellungen i.o. sind.
Ich bin in C nicht so drin (arbeite hauptsächlich mit ASM), doch wenn ich das Programm richtig verstehe, wird einmal PortB eingelesen und an PortC ausgegeben. Eine Schleife oder so kann ich nicht finden, also läuft das Programm ins Nichts. Ansonsten ist der Tip von Snowman mit dem Blinklicht nicht schlecht, vielleicht hilft es dir weiter.
Vielen dank für eure Antworten, ich werde es nachher sofort ausprobieren. Allerdings habe ich sowohl einen externen Quarz (Resonator) und ich habe die Einstellung auf release stehen. Eine Schleife ist vorhanden. Mit dem while (1) sollte das Programm beliebig lange ausgeführt werden. viele Grüße, Martin
Hast Du die Einstellungen richtig in: Configure/Select Device Configure/Configuration Bits/ Configuration Bits set in code [Häkchen ja/nein] ? Ansonsten, kannst du einen Fehler in deiner Schaltung ausschließen ?
Hallo, leider hatte ich keinen Erfolg. Meine Schaltung habe ich durchgemessen. Alle Verbindungen stehen. Als Quarz verwende ich einen Resonator die 2 äusseren Füsse habe ich mit Osc1 und Osc2 verbunden, den Mittlern mit Masse. MCLR habe ich mit +5V verbunden, sowie auch Vdd. Vss habe ich beide mit Masse verbunden. Noch irgendwelche Ideen? Sollte der Pic kaputt sein, erschiene dann trotz allem das das Programmieren erfolgreich war? Beste Grüße, Martin
@luckyluck: >Ich verwende den microchip c18 compiler in der mplab ide. Als >Programmer benutze ich das pickit2 (extra gekauft, weil ich dachte, >dass mit meinem alten programmer etwas nicht stimmt). Ich habe die >Pfade für den linker, c18 und die lib kontrolliert. Nur keine Panik! Ich hatte selbst noch ein uraltes PICkit1 hier herum liegen, das stammt etwa aus 2003. Hab das in den letzten Tagen ausgegraben, um mal wieder mit PICs zu arbeiten. Da wird allerdings die mitgelieferte PC-Software veraltet sein. Also, lud ich mir zunächst mal das aktuelle MPLAB bei Microchip herunter und installierte es. Dort kann man als Programmiertool mein PICkit1 und auch das PICkit2 einstellen. Ich kenne dein PICkit2 nicht, aber wenn es wie das PICkit1 ist, gehe ich mal davon aus, daß sich eine CD dabei befindet, auf der ein Tutorial ist, in dem sich Beispiele befinden. Da sollte es dann auch ausführbaren Code mit der Dateiendung hex geben. Der sollte auf jeden Fall funktionieren. Diese Dateien müßten sich problemlos direkt in das PICkit laden lassen. Einfach ist es auf jeden Fall, in der PICkit Demo Software ein Hex-File zu laden und auf das Board zu downloaden. Wenn da nichts geht, ist durchaus was faul. Du hast am PICkit hoffentlich nichts manipuliert?
Mal ne "dumme" Frage: Ist MCLR auch auf "high" während des Betriebs? (z.B. über 1k an Vcc des PICs). Und hast du die (richtigen) Lastkapazitäten am Resonator? >#pragma config OSC=HS HS, dein Resonator ist also was im zweistelligen MHz-Bereich. Hab jetzt das Datenblatt nicht vor mir liegen aber wie schauts mit dem internen Oszilator aus (ich nehm grad an, dass dein PIC einen hat, ich selbst spiel grad mit dem 18F2455 rum und der hat einen)? Funktioniert vielleicht damit dein PIC?
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.