www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PICKIT 2 und 18F4550


Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Ich habe hier ein Datenblatt von dem PICKIT2

http://ww1.microchip.com/downloads/en/DeviceDoc/51553B.pdf

und hier eines von meinem PIC

http://ww1.microchip.com/downloads/en/devicedoc/39632d.pdf


Ich werde einfach nicht schlau, an welche Pins ich mein PICKIT 
anschließen muss. Könnt Ihr mir helfen ?

lg Tim

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steht alles auf der besten PIC Seite die ich kenne (leider nur 
Assembler) aber für den Einstieg genial:

http://www.sprut.de/electronic/pic/icsp/icsp.htm#1

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, habe nun alles so angeshclossen wie es soll ;) DANKE dir.

Nun würde ich gerne die Vorgehensweise haben, wie ich in MPLAB verfahren 
soll. Habe hierzu leider nichts bei SPURT gefunden. Undzwar habe ich 
mein PK2 angeschlossen, dann mein Projekt geöffnet, welches ich nach 
pic-projekte.de erstellt habe.
http://pic-projekte.de/index.php/pic-c-tutorial.html

Dann habe ich auf Build All gedrückt, und nun kommt folgenden:

http://img521.imageshack.us/i/mplab.png/

lg Tim

Und wo muss ich eigentlich eingeben, welche Frequenz mein Quarz hat ?

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich war zu spät zum Bearbeiten:

Hier mein Code:
#pragma config FOSC = XT
#pragma config PWRT = ON
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config VREGEn = OFF
#pragma config MCLRE = ON

#include <p18f4550.h>

TRIS = 0;

void main(void)
{
 Led_an()
}

void Led_an(void)
{
LATDbits.LATD0 = 1;
}

Und hier nochmal die Fehlermeldung unabgeschnitten ;)

C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\main.c:1:Error [1225] configuration value 'XT' not 
recognized for configuration setting 'FOSC'
C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\main.c:7:Error [1224] configuration setting 'VREGEn' not 
recognized C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\main.c:12:Error: syntax error

lg Tim

PS: Das REGEn <- weis ich habe ich das N klein geschrieben ;)

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Hinter
Led_an()
noch ein ";"

Hier
TRIS = 0; 
fehlt die Angabe welches Tris(A,B,..)

Und deine Funktion "LED_an" muss vor main einmal angemeldet werden! Und 
ganz wichtig, du musst erstmal zu Beginn alle Pins auf Digital 
umschalten und ggf. Komparatoreingänge deaktivieren:
ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
CMCON=0x07;    // Komparatoreinänge deaktivieren 

Wegen der Fehlermeldungen schau mal folgendes in MPLAB nach:

Wähle den Reiter "Configure" und dann den Menüpunkt "Configuration 
Bits.." dann versichere dich, dass der Hacken (oben) gesetzt ist. Wenn 
das der Fall ist und der Fehler immer noch auftritt kannst du nochmal 
versuchen den C18 auf den neusten Stand zu bringen, dass soll wohl auch 
schon mal zu solchen Problemen geführt haben =)

Viel Erfolg!

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE !!!

Werde das oben gleich nochmal mit deiner super Verbesserung versuchen. 
Wenn ich mein PICKIT in MPLAB einbinde, kommt folgender Hinweis:

PKWarn0003: Unexpected device ID:  Please verify that a PIC18F4550 is 
correctly installed in the application.  (Expected ID = 0x1200, ID Read 
= 0x0)

kannst du mir sagen, was der bedeutet, und ob ich den ignorieren kann ?

lg Tim

PS: Kann es sein, das das Fenster wo ich den Code drinnen habe garnicht 
die C Umgebung ist ? Weil ich keine Zeilenangaben habe... ?

http://img841.imageshack.us/f/unbenanntfcc.png/

Habe meinen Code nun wie Folgt abgeändert:
#pragma config FOSC = XT  //Oscilator Art
#pragma config PWRT = ON  //Power Überwachung AN
#pragma config BOR = OFF
#pragma config WDT = OFF  // Watch Dog AUS
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config VREGEN = OFF
#pragma config MCLRE = ON  // Master Reset AN

#include <p18f4550.h>    // Pic .h eigebunden

TRISD = 0;    // Port D ist nun ein Ausgang
ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
CMCON=0x07;    // Komparatoreinänge deaktivieren 


void Led_an(void)  // Funktion LED_AN erstellt
{
LATDbits.LATD0 = 1;  // Schiebt das Bit0 an PortD auf +5V 
}

void main(void)  // Haupt Routine
{
  Led_an();  // Funktion wird aufgerufen
}


Und nun habe ich noch folgende Errors: Was mich wundert ist, das ich 
niergendwo die Angabe über die Frequenz meines Quarzes angeben muss.

C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\main.c:1:Error [1225] configuration value 'XT' not 
recognized for configuration setting 'FOSC'
C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\main.c:12:Error: syntax error

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, das Editor-Fenster ist schon richtig so.
Wegen der Fehlermeldung mit dem PicKit2 bin ich mir nicht sicher habe 
noch nie damit gearbeitet aber überprüfe mal ob du wirklich den 4550 
ausgewählt hast:

>> Reiter Configure --> Select Device

Ansonsten versuch mal die Schritte hab ich gerade gefunden:

1) disconnect the pk2 from your target and from USB.
2) reconnect pk2 to PC USB
3) select programmer->connect in MPLAB (it will tell you to make sure 
the correct device is connected)
4) reconnect pk2 to your target
5) select programmer->connect

Oh Gott, dass ich das nicht vorher gesehen habe ^^:
Du musst eine Endlosschleife in dein Programm einbauen =) Also in dein 
main muss nochmal eine while(1) Schleife hinein ansonsten resetet der 
PIC andauernd:
void main(void)  // Haupt Routine
{
  Led_an();  // Funktion wird aufgerufen

  while(1)
  {
  }
}


Edit: Die Angabe der Quarzfrequenz machst Du ja mittels 'XT', dass 
heisst deine Frequenz liegt zwischen  100 kHz - 4 MHz

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, diese Fehlermeldung für den PIC ist dann, wenn ich mein PK2 nicht 
in meiner Schaltung angeschlossen habe, und MPLAB öffne. Wenn ich das 
angeschlossen habe, und dann MPLAB und mein Projekt starte, dann geht es 
ohne eine Fehler meldung ;) Das war schonmal Nummer 1.

So, dias ich die Fehlermeldung mit XT habe, weis ich nicht was dass 
soll, ich kann doch bei FOSC XT angeben, denn ich habe ein Normales 8 
Mhz Quarz an meinem PIC hängen.

Und leider sagt mir eine Syntax Meldung garnichts.

lg Tim

PS: Ich finde es super das du mir soweiter hilfst.

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, nun habe ich erst deinen Edit gesehen ;)

Oh mann ;)

Ok, werde das gleich machen. Wie heist das dann bei 8 Mhz ? HS

lg Tim

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, kein Problem =)

Also mit einem 8 Mhz Quarz musst du die Oszillator Einstellung auf 'HS' 
umstellen, dann weiß der PIC, dass du mit 4 - 20 Mhz arbeitest, denn 
'XT' geht nur bis max. 4 Mhz.

Sorry wenn ich das Fragen muss aber hast du auch die entsprechenden 
Lastkondensatoren an dem Quarz dran?

Gruß Nico

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, habe gegen Masse 22pF angehängt ;)

Bin auszubildender für Geräte und Systeme im 2 Jahr, und bin schon an 
Elektrotechnik seit 10 Jahren begeistert. Und freue mich, das ich solch 
eine tolle Hilfe beim PIC - Programmen bekomme.

PS: PIC´s kommen in der Ausbildung fast garnicht vor ;)

lg Tim

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, mein Prog sieht nun so aus:
#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
#pragma config PWRT = ON  //Power Überwachung AN
#pragma config BOR = OFF
#pragma config WDT = OFF  // Watch Dog AUS
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config VREGEN = OFF
#pragma config MCLRE = ON  // Master Reset AN

#include <p18f4550.h>    // Pic .h eigebunden

TRISD = 0;    // Port D ist nun ein Ausgang
ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
CMCON=0x07;    // Komparatoreinänge deaktivieren 


void Led_an(void)  // Funktion LED_AN erstellt
{
LATDbits.LATD0 = 1;  // Schiebt das Bit0 an PortD auf +5V 
}

void main(void)  // Haupt Routine
{
  Led_an();  // Funktion wird aufgerufen
  while(1)
  {
  }
}


Nun habe ich nurnoch meinen Syntax error ;)

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, na klar: Dieses hier:
TRISD = 0;    // Port D ist nun ein Ausgang
ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
CMCON=0x07;    // Komparatoreinänge deaktivieren 

..muss noch in Main hinein! Denn sonst wird das ja gar nicht 
abgearbeitet.

Also so müsste es funktionieren:
#include <p18f4550.h>    // Pic .h eigebunden

#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
#pragma config PWRT = ON  //Power Überwachung AN
#pragma config BOR = OFF
#pragma config WDT = OFF  // Watch Dog AUS
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config VREGEN = OFF
#pragma config MCLRE = ON  // Master Reset AN

#pragma code 

void Led_an(void)  // Funktion LED_AN erstellt
{
LATDbits.LATD0 = 1;  // Schiebt das Bit0 an PortD auf +5V 
}

void main(void)   // Haupt Routine
{
  TRISD = 0;      // Port D ist nun ein Ausgang
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
  CMCON=0x07;     // Komparatoreinänge deaktivieren 

  Led_an();  // Funktion wird aufgerufen
  while(1)
  {
  }
}

Ich habe das einbinden der pic.h mal ganz an den Anfang des Programmes 
gesetzt ist übersichtlicher m.M.n. Und da dein Programm in den 
Programmspeicher soll schreibst du vor dem eigentlichen Programmcode 
(also das was der PIC machen soll) noch ' #pragma code '

Jetzt sollte es klappen.

PS: Habe auch EGS gelernt ;)

Autor: Patrick E. (f4550tim)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein Auszug aus meinem Schaltplan.

Könnte das Syntax ein Hardware Fehler sein ?

lg Tim

PS: Sorry habe deine Antwort nciht gesehen. Ich werde das erst vesuchen 
;)

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. Der Syntaxfehler heißt nichts weiter als, dass in der Software was 
verkehrt gemacht wurde (z.B. es wurde ein ; vergessen o.ä.)+

Edit: Siehe zwei Beiträge weiter oben =)

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke dir.

So, mit deinem Code, bekomme ich keinen Syntax Fehler mehr. Nun kommt 
folgendes:

Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\MCC18\bin\mcc18.exe" -p=18F4550 "main.c" -fo="main.o" 
-D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
Executing: "C:\MCC18\bin\mplink.exe" /l"C:\MCC18\lib" 
"..\..\..\..\..\MCC18\bin\LKR\18f4550_g.lkr" "main.o" /u_CRUNTIME 
/u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"C1.cof" /M"C1.map" /W
MPLINK 4.37, Linker
Copyright (c) 1998-2010 Microchip Technology Inc.
Errors    : 0

MP2HEX 4.37, COFF to HEX File Converter
Copyright (c) 1998-2010 Microchip Technology Inc.
Errors    : 0

Loaded C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\C1.cof.
----------------------------------------------------------------------
Debug build of project `C:\Dokumente und 
Einstellungen\Tim-Programming\Eigene Dateien\MPLAB\C\C1.mcp' succeeded.
Language tool versions: mpasmwin.exe v5.37, mplink.exe v4.37, mcc18.exe 
v3.36, mplib.exe v4.37
Preprocessor symbol `__DEBUG' is defined.
Sat Nov 20 11:18:44 2010
----------------------------------------------------------------------
BUILD SUCCEEDED

Also ist es ja nun gut ;)

Nun noch eine Frage zum Praktischen, sollte das Programm gleich 
gestartet werden wenn, BUILD SUCCEEDED kommt ? Oder erst wenn ich das 
PK" abschließe und meine Normale Spannugsversorgung über mein 
Labornetzteil zuführe.

Leider leuchtet meine LED in beiden Fällen nicht. Ich habe diese an 
PortD an den Pin 0 mit der Anode und einem 470 Ohm Vorwideschtand 
angehängt.

lg Tim

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weder noch. Durch das "Build All" hast du nun aus dem Programmcode eine 
.HEX Datei erzeugt, welche aus 1en und 0en besteht (dies und nur das 
kann der PIC). So die HEX Datei muss nun in den PIC geschrieben werden. 
Dazu wählst du unter Programmer dein PicKit aus. Dann kriegt man neue 
Buttons in der Taskleiste. Dann musst du den Button "Programm the target 
Device" anklicken, dann wird das Programm in den PIC geschrieben. Wenn 
du dann das PicKit2 von deiner Schaltung trennst müsste es klappen =)

Edit: Mh also die LED liegt über einen Vorwiderstand direkt am Pin. Bei 
470 Ohm fließen dann ca. 10mA. Kann sein, dass die LED bei 10mA noch 
nicht leuchtet kommt auf den Typ an. Ich schalte LEDs immer über einen 
Transistor (schau mal auf www.PIC-Projekte.de im Tutorial --> LEDs an 
PIC)

Gruß Nico

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, nun klappt es. Ich habe extra diesen Vorwiderstand wegen dem 
kleinerem Strom gewählt. Doch, die LED leuchtet nun ;)

So, ist alles perfekt !

Habe ich die Möglichkeit in C eine Verzögerung in ms einzustellen ? Also 
z.B Delay_ms(1000) ?

Habe leider auf Spurts und pic-projekte nichts gefunden.

Und könnte ich dem PortD einen Wert wie 0x05 zuweisen, sodas bestimmte 
ausgänge gesetzt werden, und ich nicht jedem Pin einen Wert zuweisen 
muss ?

lg

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja gibt es. Hat der C18 im Gepäck.
Dafür musst du zuerst die Libary in dein Projekt einbinden:

Bei den Ordnern: Header Files (in MPLAB links)
Hier musst du einen Rechtsklick und auf Add Files klicken, dann suchst 
du im C18 Ordner (wahrscheinlich C://Programme/Microchip.. hier iwo 
MCC18
Dann den Ordner 'H' hie drin die Datei delays.h suchen und einbinden.

Jetzt kannst du die Funktionen im Programm nutzen. Beispiele:

(In die Klammern dann jeweils eine Zahl von 0-255)
void Delay10TCYx();

void Delay100TCYx();

void Delay1KTCYx();

void Delay10KTCYx();

Die Funktionen kannst Du dir auch in der delays.h ansehen.
...Klar 0x05 wäre dann 000001001 also PD0 und PD3 auf High, musst aber 
auch parallel im Datenblatt gucken ob die einzelnen Pins auch als 
Ausgang verwendet werden können =)

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, habe mir die delays.h durchgelesen.

Nun weis ich, das der wert 0 die meiste Zeit, und der Wert 255 die 
kürzeste verzögerung ist. Ich habe auch versucht, ob ich zum Beispiel 
mit LATD = 0x01; den Pin 0 auf high legen kann. Ja, das klappt ;)

Nun wollte ich ein einfaches blinken mit folgendem Coder aufstellen:
#include <p18f4550.h>    // Pic .h eigebunden
#include <delays.h>

#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
#pragma config PWRT = ON  //Power Überwachung AN
#pragma config BOR = OFF
#pragma config WDT = OFF  // Watch Dog AUS
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config VREGEN = OFF
#pragma config MCLRE = ON  // Master Reset AN

#pragma code 


void main(void)   // Haupt Routine
{
  TRISD = 0;      // Port D ist nun ein Ausgang
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
  CMCON=0x07;     // Komparatoreinänge deaktivieren 

  while(1)
  {
  LATD = 0x01;
  void Delay100TCYx(200);
  LATD = 0x00;
  void Delay100TCYx(200);
  }
}


Doch leider bekomme ich einen Syntax. Ich habe es nurmal mal der 
Delay-Funktion versucht, doch leider mag er die garnicht. Ich habe oben 
die library eingebunden und auch in meinen Header-Files diese delays.h 
dazugefügt.

Habe ich einen Denkfehler, oder kann ich das nicht in die Endlosschleife 
meiner Hauptroutine schreiben ?

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach nochmal die beiden "void" vor den Aufrufen weg =) Und wenn ich mich 
recht erinnere, dann ist 1 die kürzeste und 255 die längste Verzögerung 
aber das kannst Du ja ausprobieren.

Edit: Nur als Hinweis PWRT ist keine Power Überwachung. Das kannst Du 
auch auf htp://pic-projekte.de nachlesen --> PIC-Tutorial (7.0/1)

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, alles bestens ;)

LG Tim

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So das freut mich, dass wir dir hier so helfen konnten.
Einige Bemerkungen noch zum Schaltplan:

- die Diode kann man sich sparen. Gleiches gilt für den Kondensator. 
Manchen kommen ohne besser zu Recht andere mit. Ich habe generell gute 
Erfahrungen mit folgender Schaltung gemacht (die die Option auf den 
Reset-Taster hat).

            Vcc
             |
            | |
            | |
             |   __
GND--TASTER--+--|____|---- MCLR

Das sind beides Widerstände mit jeweils 10k. Den Taster kann man getrost 
rauslassen.

- Zwischen Vss und Vcc sollte ein Kondensator 100nF so nahe wie möglich 
an den Pins zu Enstörzwecken.

- Du hast den HS Oszillator gewählt. Das bedeutet, dass du aber auch zum 
Betrieb eine Taktquelle brauchst (die Fehlt ja im Schaltplan). Für die 
interenen Oszillatoren usw. findest du alles mögliche im Datenblatt 
unter dem Punkt 2.0 OSCILLATOR CONFIGURATIONS.

Viel Erfolg weiterhin

Gruß

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lehrmann Michael schrieb:
> Den Taster kann man getrost rauslassen

Dann kann man sich auch den Rest sparen und MCLRE ausschalten somit 
erhält man einen zusätzlichen Eingang =)

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die weiteren Infos.

Der Schalplan sollte nur die Hardware für den ICSP-Schnittstelle 
darstellen ;)

lg Tim

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, nun habe ich mit den Ausgängen etwas gespielt ;) Nun wollte ich eine 
Abfrage machen:
#include <p18f4550.h>    // Pic .h eigebunden
#include <delays.h>

#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
#pragma config PWRT = ON  //Power Überwachung AN
#pragma config BOR = OFF
#pragma config WDT = OFF  // Watch Dog AUS
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config VREGEN = OFF
#pragma config MCLRE = ON  // Master Reset AN

#pragma code 


void main(void)   // Haupt Routine
{
  TRISB = 0;      // Port B ist nun ein Ausgang
  TRISA = 1;    // Port A ist ein Eigang
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
  CMCON=0x07;     // Komparatoreinänge deaktivieren

  while(1)
  {
    If (PORTAbits.PORTA0 = 0) // Wenn RA0 auf Masse liegt, dann...
    {
    LATB = 0x10;      // Led an
    }
    else
    {
    LATB = 0x00;      // Led aus
    }  
  }
}


Doch es kommt der Syntax. Ich denke das eineKleinigkeit an meiner If 
nicht stimmt. Ich habe schon auf pic-projekte.de geschaut, aber leider 
auch nichts weiter gefunden.

lg Tim

Autor: Patrick E. (f4550tim)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner Einblick ;)

Autor: PIC Nico (eigo) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht gut aus =)

1. Die IF Bedingung muss klein geschrieben werden (wird dann auch blau 
dargestellt)
2. "=" ist nur für Zuweisungen wenn du auf Gleichheit prüfen willst dann 
"=="
3. Nicht "PORTAbits.PORTA0" sondern "PORTAbits.RA0"

So:
#include <p18f4550.h>    // Pic .h eigebunden
#include <delays.h>

#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
#pragma config PWRT = ON  //Power Überwachung AN
#pragma config BOR = OFF
#pragma config WDT = OFF  // Watch Dog AUS
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config VREGEN = OFF
#pragma config MCLRE = ON  // Master Reset AN

#pragma code 


void main(void)   // Haupt Routine
{
  TRISB = 0;      // Port B ist nun ein Ausgang
  TRISA = 1;    // Port A ist ein Eigang
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
  CMCON=0x07;     // Komparatoreinänge deaktivieren

  while(1)
  {
    if (PORTAbits.RA0 == 0) // Wenn RA0 auf Masse liegt, dann...
    {
    LATB = 0x10;      // Led an
    }
    else
    {
    LATB = 0x00;      // Led aus
    }  
  }
}

Edit: Aber war deine LED nicht an D0 oder ist eine der anderen an B7?

Autor: Patrick E. (f4550tim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Is ne andere ;)

Danke, funktioniert ;)

lg Tim

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.