Forum: Mikrocontroller und Digitale Elektronik PICKIT 2 und 18F4550


von Patrick E. (f4550tim)


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

von Lehrmann M. (ubimbo)


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

von Patrick E. (f4550tim)


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 ?

von Patrick E. (f4550tim)


Lesenswert?

Sorry, ich war zu spät zum Bearbeiten:

Hier mein Code:
1
#pragma config FOSC = XT
2
#pragma config PWRT = ON
3
#pragma config BOR = OFF
4
#pragma config WDT = OFF
5
#pragma config LVP = OFF
6
#pragma config PBADEN = OFF
7
#pragma config VREGEn = OFF
8
#pragma config MCLRE = ON
9
10
#include <p18f4550.h>
11
12
TRIS = 0;
13
14
void main(void)
15
{
16
 Led_an()
17
}
18
19
void Led_an(void)
20
{
21
LATDbits.LATD0 = 1;
22
}

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 ;)

von PIC N. (eigo) Benutzerseite


Lesenswert?

Hi,
Hinter
1
Led_an()
noch ein ";"

Hier
1
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:
1
ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
2
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!

von Patrick E. (f4550tim)


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:
1
#pragma config FOSC = XT  //Oscilator Art
2
#pragma config PWRT = ON  //Power Überwachung AN
3
#pragma config BOR = OFF
4
#pragma config WDT = OFF  // Watch Dog AUS
5
#pragma config LVP = OFF
6
#pragma config PBADEN = OFF
7
#pragma config VREGEN = OFF
8
#pragma config MCLRE = ON  // Master Reset AN
9
10
#include <p18f4550.h>    // Pic .h eigebunden
11
12
TRISD = 0;    // Port D ist nun ein Ausgang
13
ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
14
CMCON=0x07;    // Komparatoreinänge deaktivieren 
15
16
17
void Led_an(void)  // Funktion LED_AN erstellt
18
{
19
LATDbits.LATD0 = 1;  // Schiebt das Bit0 an PortD auf +5V 
20
}
21
22
void main(void)  // Haupt Routine
23
{
24
  Led_an();  // Funktion wird aufgerufen
25
}

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

von PIC N. (eigo) Benutzerseite


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:
1
void main(void)  // Haupt Routine
2
{
3
  Led_an();  // Funktion wird aufgerufen
4
5
  while(1)
6
  {
7
  }
8
}


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

von Patrick E. (f4550tim)


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.

von Patrick E. (f4550tim)


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

von PIC N. (eigo) Benutzerseite


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

von Patrick E. (f4550tim)


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

von Patrick E. (f4550tim)


Lesenswert?

So, mein Prog sieht nun so aus:
1
#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
2
#pragma config PWRT = ON  //Power Überwachung AN
3
#pragma config BOR = OFF
4
#pragma config WDT = OFF  // Watch Dog AUS
5
#pragma config LVP = OFF
6
#pragma config PBADEN = OFF
7
#pragma config VREGEN = OFF
8
#pragma config MCLRE = ON  // Master Reset AN
9
10
#include <p18f4550.h>    // Pic .h eigebunden
11
12
TRISD = 0;    // Port D ist nun ein Ausgang
13
ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
14
CMCON=0x07;    // Komparatoreinänge deaktivieren 
15
16
17
void Led_an(void)  // Funktion LED_AN erstellt
18
{
19
LATDbits.LATD0 = 1;  // Schiebt das Bit0 an PortD auf +5V 
20
}
21
22
void main(void)  // Haupt Routine
23
{
24
  Led_an();  // Funktion wird aufgerufen
25
  while(1)
26
  {
27
  }
28
}

Nun habe ich nurnoch meinen Syntax error ;)

von PIC N. (eigo) Benutzerseite


Lesenswert?

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

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

Also so müsste es funktionieren:
1
#include <p18f4550.h>    // Pic .h eigebunden
2
3
#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
4
#pragma config PWRT = ON  //Power Überwachung AN
5
#pragma config BOR = OFF
6
#pragma config WDT = OFF  // Watch Dog AUS
7
#pragma config LVP = OFF
8
#pragma config PBADEN = OFF
9
#pragma config VREGEN = OFF
10
#pragma config MCLRE = ON  // Master Reset AN
11
12
#pragma code 
13
14
void Led_an(void)  // Funktion LED_AN erstellt
15
{
16
LATDbits.LATD0 = 1;  // Schiebt das Bit0 an PortD auf +5V 
17
}
18
19
void main(void)   // Haupt Routine
20
{
21
  TRISD = 0;      // Port D ist nun ein Ausgang
22
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
23
  CMCON=0x07;     // Komparatoreinänge deaktivieren 
24
25
  Led_an();  // Funktion wird aufgerufen
26
  while(1)
27
  {
28
  }
29
}

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 ;)

von Patrick E. (f4550tim)


Angehängte Dateien:

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 
;)

von PIC N. (eigo) Benutzerseite


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 =)

von Patrick E. (f4550tim)


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

von PIC N. (eigo) Benutzerseite


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

von Patrick E. (f4550tim)


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

von PIC N. (eigo) Benutzerseite


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)
1
void Delay10TCYx();
2
3
void Delay100TCYx();
4
5
void Delay1KTCYx();
6
7
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 =)

von Patrick E. (f4550tim)


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:
1
#include <p18f4550.h>    // Pic .h eigebunden
2
#include <delays.h>
3
4
#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
5
#pragma config PWRT = ON  //Power Überwachung AN
6
#pragma config BOR = OFF
7
#pragma config WDT = OFF  // Watch Dog AUS
8
#pragma config LVP = OFF
9
#pragma config PBADEN = OFF
10
#pragma config VREGEN = OFF
11
#pragma config MCLRE = ON  // Master Reset AN
12
13
#pragma code 
14
15
16
void main(void)   // Haupt Routine
17
{
18
  TRISD = 0;      // Port D ist nun ein Ausgang
19
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
20
  CMCON=0x07;     // Komparatoreinänge deaktivieren 
21
22
  while(1)
23
  {
24
  LATD = 0x01;
25
  void Delay100TCYx(200);
26
  LATD = 0x00;
27
  void Delay100TCYx(200);
28
  }
29
}


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 ?

von PIC N. (eigo) Benutzerseite


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)

von Patrick E. (f4550tim)


Lesenswert?

Danke, alles bestens ;)

LG Tim

von Lehrmann M. (ubimbo)


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ß

von PIC N. (eigo) Benutzerseite


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 =)

von Patrick E. (f4550tim)


Lesenswert?

Danke für die weiteren Infos.

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

lg Tim

von Patrick E. (f4550tim)


Lesenswert?

So, nun habe ich mit den Ausgängen etwas gespielt ;) Nun wollte ich eine 
Abfrage machen:
1
#include <p18f4550.h>    // Pic .h eigebunden
2
#include <delays.h>
3
4
#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
5
#pragma config PWRT = ON  //Power Überwachung AN
6
#pragma config BOR = OFF
7
#pragma config WDT = OFF  // Watch Dog AUS
8
#pragma config LVP = OFF
9
#pragma config PBADEN = OFF
10
#pragma config VREGEN = OFF
11
#pragma config MCLRE = ON  // Master Reset AN
12
13
#pragma code 
14
15
16
void main(void)   // Haupt Routine
17
{
18
  TRISB = 0;      // Port B ist nun ein Ausgang
19
  TRISA = 1;    // Port A ist ein Eigang
20
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
21
  CMCON=0x07;     // Komparatoreinänge deaktivieren
22
23
  while(1)
24
  {
25
    If (PORTAbits.PORTA0 = 0) // Wenn RA0 auf Masse liegt, dann...
26
    {
27
    LATB = 0x10;      // Led an
28
    }
29
    else
30
    {
31
    LATB = 0x00;      // Led aus
32
    }  
33
  }
34
}

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

von Patrick E. (f4550tim)


Angehängte Dateien:

Lesenswert?

Kleiner Einblick ;)

von PIC N. (eigo) Benutzerseite


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:
1
#include <p18f4550.h>    // Pic .h eigebunden
2
#include <delays.h>
3
4
#pragma config FOSC = HS  //Oscilator Art zwischen 4MHz - 20MHz
5
#pragma config PWRT = ON  //Power Überwachung AN
6
#pragma config BOR = OFF
7
#pragma config WDT = OFF  // Watch Dog AUS
8
#pragma config LVP = OFF
9
#pragma config PBADEN = OFF
10
#pragma config VREGEN = OFF
11
#pragma config MCLRE = ON  // Master Reset AN
12
13
#pragma code 
14
15
16
void main(void)   // Haupt Routine
17
{
18
  TRISB = 0;      // Port B ist nun ein Ausgang
19
  TRISA = 1;    // Port A ist ein Eigang
20
  ADCON1=0x0F;    // Alle Port Pins auf digital gesetzt
21
  CMCON=0x07;     // Komparatoreinänge deaktivieren
22
23
  while(1)
24
  {
25
    if (PORTAbits.RA0 == 0) // Wenn RA0 auf Masse liegt, dann...
26
    {
27
    LATB = 0x10;      // Led an
28
    }
29
    else
30
    {
31
    LATB = 0x00;      // Led aus
32
    }  
33
  }
34
}

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

von Patrick E. (f4550tim)


Lesenswert?

Is ne andere ;)

Danke, funktioniert ;)

lg Tim

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.