Forum: Mikrocontroller und Digitale Elektronik Configuration Bits bei PIC18F2550


von Martin S. (drunkenmunky)


Angehängte Dateien:

Lesenswert?

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?

von holger (Gast)


Lesenswert?

>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?

von Martin S. (drunkenmunky)


Lesenswert?

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...

von ado (Gast)


Lesenswert?

Zum Debuggen braucht man, so glaube ich, eine speziel angepaßte 
Linkerdatei.

Kannst ja mal sehen ob es daran liegt.

von Michael H. (morph1)


Lesenswert?

Der 18f2550 hat kein usb, das kann also nicht der richtige Screenshot 
sein.

Was willst du uns denn da verkaufen?

von ado (Gast)


Lesenswert?

Der 18f2550 hat USB !

von Michael H. (morph1)


Lesenswert?

Wah sorry bin ein Depp, hab den mit dem 2520 verwechselt...

von Hans (Gast)


Lesenswert?

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 ?

von Martin S. (drunkenmunky)


Angehängte Dateien:

Lesenswert?

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?

von ado (Gast)


Lesenswert?

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.

von Dirk F. (dirkf)


Lesenswert?

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

von Martin S. (drunkenmunky)


Lesenswert?

@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
Noch kein Account? Hier anmelden.