Forum: Mikrocontroller und Digitale Elektronik Anfänger hat Probleme mit PIC und C


von Jan B. (jan-b)


Lesenswert?

Moin, ich wollte ein kleines Testprogramm schreiben, bei dem eine LED 
einfach nur aufleuchten und nach ner kurzen zeit wieder ausgehen soll. 
eigentlich ganz simpel... Nun habe ich meinen PIC16F628 04/P mit IC-Prog 
und mit dem folgenen Code beschrieben, in die schaltung eingesetzt und 
nicht passierte...

#include <stdio.h>
#include <stdlib.h>
//mit den Header-datein bin ich mir nicht sicher, ich hab die in dem 
zusammenhang öfters gesehen.

#pragma config FOSC=INTOSC, WDTE=OFF, PWRTE=OFF, MCLRE=OFF, CP=OFF, 
CPD=OFF, BOREN=ON, CLKOUTEN=OFF, IESO=OFF, FCMEN=OFF
#pragma config WRT=OFF, PLLEN=OFF, STVREN=OFF, LVP=OFF
//die einstellungen habe auch Beispielcodes von Mikrochip.com.

int main(void) {

    TRISBbits.TRISB5 = 0;        // Pin 5 von Port B deffinieren

    while(1)
    {
        PORTBbits.RB5 = 1;       // Pin 5/ LED einschalten
        delay(1000);             // Warten
        PORTBbits.RB5 = 0;       // Pin 5/ LED ausschalten
        delay(1000);             // wieder warten
    }
}

Ich bin mir nicht sicher, woran es liegt, aber wenns am code liegt, bin 
ich über jede hilfe glücklich.
Vielen Dank im vorraus!

von Stefan (Gast)


Lesenswert?

Schalte mal den Comperator aus.
Siehe Datenblatt.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal ein Testprogramm.
So wie du es machen wolltest.
Sollte es nicht laufen, dann stimmt
an deiner Schaltung was nicht.

von Jan B. (jan-b)


Lesenswert?

Ok vielen dank dafür :D
ich probiers nachher mal aus.

@ Stefan: hab ich wohl übersehn gut

von Carsten S. (dg3ycs)


Lesenswert?

Hi,

OK, In deinem Fall sind da wirklich noch eine Menge Baustellen, es kann 
an deinem Programm liegen, an deinem Programmer, an IC Prog usw.
Hast du mal versucht den beschriebenen PIC wieder auszulesen und den 
Speicherinhalt mit deinem HEX-File verglichen? Damit könnte man 
zumindest schon einmal sicherstellen das es überhaupt zu einem 
erfolgreichen Programmiervorgang gekommen ist.
ICh kenne das Programm IC-Prog jetzt nicht, zu meiner 
Selbstbauprogammerzeit habe ich noch mit PIP02 gearbeitet. ISt aber nun 
fast 15 Jahre her. ISt es dort evtl. möglich das dein Programm- falls es 
überhaupt in den PIC gekommen ist- mit falscher Startadresse im Speicher 
gelandet ist.

Mit einem Original PicKit3 bzw. einem 100% Clone (ab 20Euro) könntest du 
dir zumindest sicher sein das wenn eine erfolgreiche Programmierung 
gemeldet wird dies auch so stimmt.

Ausserdem: Welchen Compiler hast du verwendet?
Vom Quellcode passt keine der beiden Alternativen die mir in den Sinn 
kommt.
Dann könnte man auch sagen ob die Includes richtig sind, überflüssig, 
oder ob da noch etwas fehlt. Auch und vor allem ob die delay Funktion in 
dieser Schreibweise korrekt ist kann man nur dann sehen da diese 
Compilerabhängig ist...

Was hat der Compiler denn nach dem Build an Output ausgegeben, Wurde ein 
erfolgreicher Abschluss gemeldet oder vielleicht gar ein Fehler?

Ach ja:

Stefan schrieb:
> Schalte mal den Comperator aus.
> Siehe Datenblatt.

Was hat der Comperator beim 16F628 mit dem Port B5 zu tun? NICHTS!
Beim 628er ist gerade der PortB5 der NArrensicherste, der ist ein reiner 
IO ohne Mehrfachfunktion!
Bis auf das Richtungsbit im Tris register muss beim B5 wirklich NICHTS 
anderes konfiguriert sein damit der als normaler Ausgang funktioniert.

Gruß
Carsten

von Jan B. (jan-b)


Lesenswert?

Das Programm läuft nicht... und wird in IC-Prog auch nicht wirklich 
dargestellt... sind nur nullen.
hast du noch das C-file?

von Stefan (Gast)


Lesenswert?

Wieso dargestellt ?
Du sollst das HEX-File in den
Pic brennen. Das ist kein Programm, was
du ansehen kannst. Wird direkt in den µC
reingeschrieben.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Sehe gerade das du den MCLR nicht benutzt.
Hier mal das Programm ohne MCLR.

von Dani (Gast)


Lesenswert?

Carsten Sch. schrieb:
> Mit einem Original PicKit3 bzw. einem 100% Clone (ab 20Euro) könntest du
> dir zumindest sicher sein das wenn eine erfolgreiche Programmierung
> gemeldet wird dies auch so stimmt.
Ich würde auch einen Programmer von Microchip kaufen. Ich lese manchmal 
hier im Forum von Problemen mit Selbstbau-Programmern, und bin jedes Mal 
froh, dass ich mit zum Einsteigen ein PICkit2 gekauft und somit nie 
Probleme mit dem Programmer hatte (außer als ich zum PK3 wechseln musste 
weil das PK2 den PIC den ich verwenden wollte nicht unterstützt).

von Jan B. (jan-b)


Lesenswert?

also was ich mit darstellen meine ist, dass wenn ich das Programm in 
PonyProg oder IC-Prog öffne sind da ja sonnst immer viele erschiedene 
Zahlen und Buchstaben - hexfile halt - doch mir werden werden da nur 
nullen angezeigt... liegt wohl an der übertragung zum alten rechner, wo 
ich noch ne serielle schnitstelle hab^^
naja, darun kümmer ich mich spädter.

Ich hab mich nebenbai nochmal schlau gemacht, und ich glaub, dass delay 
sieht eher so aus: _delay_ms()...
Naja könnte sonst jamand so nett sein und mir dieses Testprogramm als 
C-Code aufschreiben? Ich hab nähmlich nen "größeres" Programm geplant, 
nämlich ein lauflicht, aber dafür müssen ja erstmal die anfänge stimmen.
Danke schonmal.
MFG Jan

P.S. das Programmiergerät ist ein offizielles mit eigenen treibern usw. 
und fünktioniert auch, also ich hab den PIC beschrieben und neu 
eingelesen (hab nen älteren code benutzt) und die hexfils wurden in der 
anzeige von IC-Prog gleich dargestellt.

von Stefan (Gast)


Lesenswert?

Verstehe zwar nicht so ganz was du da
machst, aber schau mal hier vorbei.
Da findest du viele Anregungen zum lernen
von C.

http://pic-projekte.de/wiki/index.php?title=Hauptseite

von Dani (Gast)


Lesenswert?

Stefan schrieb:
> http://pic-projekte.de/wiki/index.php?title=Hauptseite
Das PIC-C-Tutorial auf dieser Seite hat mir beim Einstieg sehr geholfen.

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.