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?
Wie sollte er auch? Ohne Oszillator...
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...
Gast
#2205550
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.
Gast
#2205555
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
So, alles klar: 4 MHz Quarz-Oszillator hängt dran... und läuft!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

