Forum: Mikrocontroller und Digitale Elektronik Problem mit kleinem Testprogamm für Pic18f458-i/p


von Pascal (Gast)


Lesenswert?

Hallo,

ich habe zum Schaltungstest ein kleines Programm geschrieben, dieses 
soll Port-B an Port-C weiterreichen und an Port-A eine Konstante 
ausgeben.

#include <p18f458.h>
#pragma config OSC = HS, WDT = OFF, LVP = OFF
#define test 0b11110000

void main(void)
{
  TRISC = 0; // Port C Ausgang
  TRISA = 0; // Port A Ausgang
  LATA = test;
  while(1)
  {
    LATC = PORTB;
  }
}

Der Controller ist ein PIC18F458-I/P, hier weiss ich nicht ob ich 
vielleicht eine andere Headerdatei brauche?

von Severino R. (severino)


Lesenswert?

Welchen Compiler verwendest Du?
Warum glaubst Du, dass Du eine andere Datei verwenden musst?
Z.T. gibt es auch allgemeine Include-Dateien, in welchen dann der 
korrekte Controller automatisch ausgewählt wird (über ein Symbol, das 
von MPLAB definiert wird).

von Pascal (Gast)


Lesenswert?

Also ich benutzte MPLAP und C18, allerdings bringe ich die fertige 
Hex-Datei am Ende manuell mit IC-Prog auf den Controller.

von Severino R. (severino)


Lesenswert?

Pascal wrote:
> Also ich benutzte MPLAP
MPLAB , nicht MPLAP, hat nichts mit Lap-Dance zu tun ;-)

Und was soll jetzt mit der Include-Datei falsch sein?

von Pascal (Gast)


Lesenswert?

Ich weiss nicht obs die richtige ist, wegen dem ...-I/P.

Mein Problem ist das ich nicht weiss warum es nicht das macht was im 
Code steht, wenn ich die Werte der Schaltung messe erscheint mir alles 
richtig zu sein, nur der Controller gibt kein Ton von sich.

Der durchgeschaltete Port funktioniert nicht, ok da könnte was von der 
Schaltung her falsch sein, was ich aber nicht glaube.
Die Konstante müsste aber auf jedefall funktionieren, tut sie aber 
nicht. ;)

von Rudi (Gast)


Lesenswert?

@Pascal: und wo liegt nun genau dein Problem? Bekommst du das nicht 
compiliert? Oder zeigt dir der Controller an PORTC nichts an? - was mich 
allerdings auch nicht wundern würde....

Rudi

von Rudi (Gast)


Lesenswert?

..upps...zu spät :-)

von Rudi (Gast)


Lesenswert?

>"...-I/P".
bedeutet, soweit ich das noch in Erinnerung habe, nichts anderes als 
'I=Industriebereich, sprich Temperaturbereich und P=Plastik-Gehäuse'

nein, die ausgewählte Header-Datei ist richtig

von was-willst-du (Gast)


Lesenswert?

> was ich aber nicht glaube.

Glauben ist in der E-Technik immer der falsche Ansatz.
Der Schaltplan kann ja nicht die Welt sein. Wie wärs mit posten?

Außerdem wurden vor langer Zeit Meßmittel erfunden. Ganz simpel wäre ein 
Multimeter.

Schon mal ins Datenblatt geschaut, was -I/P bedeutet ?

von Severino R. (severino)


Lesenswert?

Pascal wrote:
> Ich weiss nicht obs die richtige ist, wegen dem ...-I/P.

Passt schon, das I steht für Industrielle Ausführung (betr. 
Temperaturbereich), das P für ein Plastikgehäuse im DIL-Format.

> Mein Problem ist das ich nicht weiss warum es nicht das macht was im
> Code steht, wenn ich die Werte der Schaltung messe erscheint mir alles
> richtig zu sein, nur der Controller gibt kein Ton von sich.

Wo ist denn der Lautsprecher angeschlossen?
Im Ernst: Welche Werte der Schaltung misst Du?

> Der durchgeschaltete Port funktioniert nicht, ok da könnte was von der
> Schaltung her falsch sein, was ich aber nicht glaube.
> Die Konstante müsste aber auf jedefall funktionieren, tut sie aber
> nicht. ;)

Hast Du das Ding mal im Simulator versucht?

Ein häufiges Problem ist oft auch der Oszillator.
Schau auch mal bei http://www.sprut.de/electronic/pic/fallen/fallen.html
Wie sieht Deine Schaltung aus (Schema, ev. Foto)?

von Pascal (Gast)


Angehängte Dateien:

Lesenswert?

@was-willst-du: Was ich will steht da. Wie ich bereitssagte ist die 
Beschaltung nicht mein Problem, das habe ich schon gemessen mit einem 
Multimeter man mag es kaum glauben.

Hier Skizze vom Schaltplan

von Severino R. (severino)


Lesenswert?

Es fehlen:
- Der Oszillator
- zwischen 5V und GND, also Pin 11-12 und 31-32 jeweils ein 100nF 
Kondensator

Leider scheint dieser PIC keinen internen Oszillator zu haben.

von Pascal (Gast)


Lesenswert?

Hm, das würde jedenfalls alles erklären. Ich bin davon ausgegangen das 
er einen internen Oszillator hat.

von Severino R. (severino)


Lesenswert?

Pascal wrote:
> Hm, das würde jedenfalls alles erklären. Ich bin davon ausgegangen das
> er einen internen Oszillator hat.

Selbst dann, Du müsstest ihn einschalten:

#pragma config OSC = xxxxxx


Und bevor Du dann feststellst, dass etwas mit RA0 nicht stimmt, solltest 
Du noch den obigen Link durchlesen.

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.