mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe PIC 18F2550


Autor: PicNeuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Dirk W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.sprut.de

Autor: PicNeuling (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: PicNeuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.