Moin! Ich versuche gerade meinen PIC16F870 zu laufen zu kriegen. Das ist mein erstes Projekt, und als erstes möchte ich mal eine LED auf RC3 blinken lassen - nur um zu sehen, ob's generell geht... Programmieren möchte ich in C. Ich habe folgendes Programm: #include <htc.h> __CONFIG(BOREN_ON & CP_OFF & WDTE_OFF & PWRTE_ON & FOSC_HS); #ifndef _XTAL_FREQ #define _XTAL_FREQ 16000000 #endif main(void) { TRISC = 0; ADCON1 = 7; for(;;) { PORTC = 0xff; _delay(100); //__delay_ms(500); PORTC = 0x00; _delay(100); //__delay_ms(500); } } Das ganz wird kompiliert mit dem Hitech PICC: picc --chip=16f870 --mode=lite -m led.c Das HEX-File lade ich dann mit dem Microchip-Tool mittels PicKit 2 hoch. Das scheint auch zu funktionieren. Nur leider läuft die PIC nicht los. Ich habe es auch mit einem Arbeitskollegen probiert, der mal schnell ein Programm in Assembler gebaut hat, welches auch auf einem anderen PIC-Modell lief - auf meinem jedoch nicht. Ist mein PIC kaputt? Dann würde er sich doch wohl aber gar nicht programmieren lassen, oder? Was mache ich falsch?
Matthias P. schrieb: > #ifndef _XTAL_FREQ > #define _XTAL_FREQ 16000000 > #endif > Was mache ich falsch? Von wo bekommt Dein PIC den Takt? Du definierst oben so schön eine Quarzfrequenz. Wo auf Deinem Board ist denn der Quarz? fchk
Wenn du dich mit PICs beschäftigen willst, ist diese Seite für dich interessant: http://sprut.de/electronic/pic/osc/index.htm Da bekommst du alles an Grundlagen, was du brauchst.
Der scheint wirklich nur einen internal-OSC für den WDT zu haben. Klöppel da doch mal was taktendes dran und gönn ihm sicherheitshalber noch'n 100nF an VCC/VDD mfg
Manfred John schrieb: > Der scheint wirklich nur einen internal-OSC für den WDT zu haben. Achso, ich dachte, der kann seinen eigenen Takt generieren... :-( Der RC-OSC scheint ja nicht so dolle zu sein... Dann werd ich mir mal einen Quarz besorgen...
Matthias P. schrieb: > Achso, ich dachte, der kann seinen eigenen Takt generieren... :-( kann es auch. Man muss es aber sagen dass es nutzen soll. >__CONFIG(BOREN_ON & CP_OFF & WDTE_OFF & PWRTE_ON & FOSC_HS); hier wird aber ein externe Quarz definiert (FOSC_HS) ändere das und es wird gehen.
Ich muss mich korrigieren. der 16F870 hat ausnahmsweise keinen internen Taktgeber. Man muss tatsätzlich einen Quarz oder Resonator dranhängen. sehe Datenblatt Kapitel 11.2
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.