Hallo @alle. Ich habe lange Datenblätter über den PIC für ein Schulprojekt gelesen, doch nun brauche ich langsam eine Hilfestellung. und Zwar: Ich möchte ihn in C programmieren. Nun habe ich 3 Fragen: 1. Wie spreche ich die Adressen an! z.B. RA4, RB5 2. Über die beiden Clockeingänge speise ich einen Takt von 20 MHz ein. Wie komme ich über einen Timer(für eine Schleife) an den Takt. Wie konfiguriere ich diesen!? 3. Was erkennt der PIC als Highpegel am Eingang an? Reichen + 2,5 V für H und 0 V für 0 L? Muss man dies im PIC konfigurieren? (habe da das Datenblatt nicht so recht verstanden) Tut mir Leid, solche Anfängerfragen zu stellen. Aber ich kam wirklich nicht weiter und drehe mich auf der Stelle beim Weiterkommen!? Vielen Dank für mögliche Hilfe. Einen schönen Abend noch
PicNeuling schrieb: > 1. Wie spreche ich die Adressen an! z.B. RA4, RB5 Ich hatte da mal "PORTBbits.RB0", aber das findest Du in der Doku zu dem Compiler oder einfacher in den Demo-Progs, die dabei sind. > 2. Über die beiden Clockeingänge speise ich einen Takt von 20 MHz ein. > Wie komme ich über einen Timer(für eine Schleife) an den Takt. Wie > konfiguriere ich diesen!? Hä ? Du versorgst den PIC mit festen 20MHz und willst mittels einem Timer diesen Takt bestimmen ??? Das ist etwas für kleine Cracks, die den internen 32kHz-Oszillator zu nutzen wissen (WDT)... > 3. Was erkennt der PIC als Highpegel am Eingang an? Reichen + 2,5 V für > H und 0 V für 0 L? Muss man dies im PIC konfigurieren? (habe da das > Datenblatt nicht so recht verstanden) Das Datenblatt wird etwas zu "V H min" sagen und das wird eher bei 4V liegen. CMOS-Eingänge sind so bei 80% der Versorgungsspannung angesiedelt. Darunter muß es nicht sauber erkannt werden. Konfigurieren kann man da nichts.
sieh dir eine beliebige beispiel-datei deines compilers an (MPLAB & C18 ?). viele deiner fragen werden dort gleich behandelt. anhand deiner fragen, empfehle ich dir ein kleines tutorial durchzumachen, damit hättest du mind. 2/3 deiner fragen abgehakt (viele hier werden dir nicht ein neues, persönliches tutorial schreiben wollen). schau mal auf sprut.de (infos zur hardware von PICs) und fernando-heitor.de -> WIKI (PIC forum & PIC tutorials) an.
Erstmla danke für die Antworten. Habe das bei sprut durchgemacht und hat auch einigermaßen geklappt. Doch dazu hätte ichwieder Fragen: 1. #pragma config OSC = HS //CPU=20 MHz die Zeile mag er nicht kompilieren und ich hba keine AHnung wieso. 2. PORTA = 0x00; //alle Ports und Lats auf Null setzen PORTB = 0x00; PORTC = 0x00; LATA = 0x00; LATB = 0x00; LATC = 0x00; TRISB = 0xFF; / Alle Port B sind Eingänge TRISA = 0x00; // Alle Port A sind Ausgängen RA1 = 0x01; //AN RA2 = 0x00; // AUS RA3 = 0x01; // AN RA4 = 0x00; // AUS Stimmt dieses Codefragment? Denn meine Ausgänge werden nicht gesetzt, sondern überall liegen so ca. 2,5 an und ich verstehe nicht wieso. Kann mir da vielleicht jemand einen Tipp geben? Mfg Pascal
PicNeuling schrieb: > Erstmla danke für die Antworten. Habe das bei sprut durchgemacht und hat > auch einigermaßen geklappt. Doch dazu hätte ichwieder Fragen: > > 1. #pragma config OSC = HS //CPU=20 MHz > die Zeile mag er nicht kompilieren und ich hba keine AHnung wieso. Und gibt der Compiler keine Fehlermeldung aus? Versuch's mal mit FOSC statt OSC. > > 2. > PORTA = 0x00; //alle Ports und Lats auf Null setzen > PORTB = 0x00; > PORTC = 0x00; > LATA = 0x00; > LATB = 0x00; > LATC = 0x00; Die LATx auf 0 setzen reicht eigentlich. > TRISB = 0xFF; / Alle Port B sind Eingänge > TRISA = 0x00; // Alle Port A sind Ausgängen > > RA1 = 0x01; //AN > RA2 = 0x00; // AUS > RA3 = 0x01; // AN > RA4 = 0x00; // AUS > > Stimmt dieses Codefragment? Denn meine Ausgänge werden nicht gesetzt, > sondern überall liegen so ca. 2,5 an und ich verstehe nicht wieso. Sieht gut aus. Was sind 2,5? > Kann mir da vielleicht jemand einen Tipp geben? Bei vielen PICs ist auf PORTA auch der A/D-Wandler und dieser bei Reset aktiviert. In diesem Fall müssen die analogen Eingänge deaktiviert werden. http://www.sprut.de/electronic/pic/fallen/fallen.html#analog
HI vielen Dank für die Antowrt. Das mit den Analog müsst ich mal ausprobrieren. Doch wie ist der Code in C? Das ist ja Assembler. Mit 2,5 meine ich 2,5 V. Auch wenn ich alle Ausgänge auf Null setze, hab ich einen Pegl vonb 2,5 V anliegen. Ist dies normal oder etwas falsch eingstellt? Wenn hierbei Low 2,5 und High 5 V, würde ich das mit einem Spannungsteiler lösen. MfG
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.