Forum: Mikrocontroller und Digitale Elektronik pic beginner verzweifelt


von luckyluck (Gast)


Lesenswert?

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

von Master S. (snowman)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

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.

von luckyluck (Gast)


Lesenswert?

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

von ado (Gast)


Lesenswert?

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 ?

von luckyluck (Gast)


Lesenswert?

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

von Wilhelm F. (Gast)


Lesenswert?

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

von Michael (Gast)


Lesenswert?

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