Hi, ich verwende MPLAB und ein PICKIT 3 von Microchip. Damit kann ich den PIC auch beschreiben. Nur wenn ich den Pickit als Debugger verwenden will, hält das stoppt er das Programm nach 1 oder 2 Sekunden mit der Meldung "Target halted". Habe den PIC nur mal mit Resetbeschaltung auf nem Steckbrett ohne externen Oszillator. Hängt das mit den Configuration Bits zusammen? Fällt auch da was auf?
>Habe den PIC nur mal mit Resetbeschaltung auf nem Steckbrett ohne >externen Oszillator. Und wie soll das Programm dann laufen das du debuggen möchtest?
ja man kann ja mit dem Debugger das Programm dauerhaft ablaufen lassen. Mit dem "Play" Knopf. Nur bricht der nach kurzer Zeit schon ab und ich weiß nicht warum...
Zum Debuggen braucht man, so glaube ich, eine speziel angepaßte Linkerdatei. Kannst ja mal sehen ob es daran liegt.
Der 18f2550 hat kein usb, das kann also nicht der richtige Screenshot sein. Was willst du uns denn da verkaufen?
Der PIC braucht auch zum Debuggen einen Takt, der interene geht natürlich auch. Das steht auch im PICKIT3 User's Guide. Hast du den WDT auch im Code deaktiviert ?
Hi, danke für die Antworten. @ado: Was für eine spezielle Linker Datei? Wo bekomme ich die her? Ich habe ja noch des Testoard mit einem PIC18F45K20, mit dem funktioniert auch debuggen. @Hans: Im Code habe ich bis jetzt gar nichts für die Config Bits programmiert. Ich habe mal folgendes durchgesteppt:
1 | #include <pic18.h> |
2 | |
3 | void init(void) |
4 | {
|
5 | ADCON1 = 0x0F; //Referenzspannung=Versorgungsspannung und alle Ein und Ausgänge digital |
6 | |
7 | PORTB = 0x00; |
8 | //LATB = 0x00;
|
9 | TRISB = 0xFE; //RB0 Ausgang |
10 | }
|
11 | |
12 | |
13 | void main(void) |
14 | {
|
15 | init(); |
16 | |
17 | while(1) |
18 | {
|
19 | if(RB1 == 1) |
20 | RB0 = 0; |
21 | else
|
22 | RB0 = 1; |
23 | }
|
24 | }
|
Zuerst wird ja die startup.as durchlaufen und dann springt er in die erste Zeile der Main-Methode. Beim ersten Befehl springt er aber nicht in die init-Methode was schon mal komisch ist. Ich drücke ja "Step into" nicht "Step over". Dann wird die while Schleife einmal durchlaufen und dann bleibt am Anfang der while Schleife hängen und macht nichts mehr. Irgendetwas ist da komisch, nur was?
Das mit der speziellen Linkerdatei habe ich in "MPLAB C18 C Compiler Getting Started" noch wiedergefunden aber mehr kann ich dazu auch nicht sagen. Das Paper ist schon einige Jahre alt und bezieht sich auf ICD2. http://www.cis.upenn.edu/~lee/06cse480/data/MPLAB_C18_Getting_Started_51295f.pdf Note: When using MPLAB ICD 2, special linker scripts are provided so that application code will not use the small areas in memory required for MPLAB ICD 2 debugging. The names of these linker scripts end in an “i” character. For the current project, use the linker script named 18f452i.lkr. Always use the “i” named linker scripts when debugging with MPLAB ICD 2. Noch eine Frage. Woher hast du die "pic18.h" Datei. Bis jetzt kam es mir so vor, als daß Microchip ab der 18ner Serie innerhalb seiner Entwicklungsumgebungen die Schreibweisen geändert hat. RB0 wird zu PORTBbits.RB0 usw. Die alte kurze Scheibweise finde ich viel übersichtlicher. Aber die neue wird schon seine Vorteile haben.
Hi, hatte beim PIC18F4580 mal ähnliche Probleme. Woran es gelegen hat, bin ich mir nicht mehr sicher. Aber ich hatte den PIC über die debugger erst mal komplett gelöscht und dann neu programmiert. Jetzt klappt es. Gruß Dirk
@ado: das hab ich mir bei den Beispielprogrammen abgeschaut, die schon bei dem Hi-Tech Compiler für PIC18 dabei waren. bei dem Demoboard mit dem PIC18F45K20 funktioniert ja auch RB0 und so... @Dirk Faust: Meinst du mit "Erase Flash Device"? Hab ich auch schon probiert. Bringt nichts. @alle: Sind sonst noch Fehler in dem Programm? Welchen internen Oszillator soll ich einstellen? Hab in meinem letzten Post alle verfügbaren angehängt.
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.