LED blinken lassen

OP #2043375
Lesenswert?

Hallo zusammen,

kann mir jemand mitteilen, wie ich eine LED eines dsPIC33 blinken lassen 
kann? auf welchen PIN muss ich da zugreifen? Habe CON3, CON5 und CON6. 
Weiß aber nicht welchen PIN ich von welchem Connector nutzen soll um das 
Blinken der LED zu realisieren.

Danke euch
Gast #2043404
Lesenswert?

dsPIC33
Das ist doch eine Prozessor-Familie, nichtmal ein konkretes Bauteil.
Und schon gar keine fertige Platine oder Schaltung, wo eine Leuchtdiode 
drauf ist.
Meines Wissens gibt es keinen uC mit integrierter LED --- das wäre evtl. 
eine Marktlücke.
OP #2043449
Lesenswert?

ALso ich nutze das EVIDENCE - FLEX003 - KIT, DSPIC FLEX FULL FEATURE 
BOARD.

Da drauf sind LEDS und ein Microcontroller von Microchip 
dsPIC33FJ256MC710.
Ich möchte jetzt über diesen MC eine LED (von insgesamt 6) blinken 
lassen. Weiß leider nicht wie ich da vorgehen soll.

Das Board hat ganz viele PINS wie man direkt auf den MC zugreifen kann, 
jedoch weiß ich nicht wie ich damit das LED blinken lasse. Ist meine 
erste Erfahrung mit MC´s.. Ich hoffe, dass es jetzt verständlicher ist. 
Sorry..

Ich nutze den MPLAB C Compiler von Microchip.

Gruß Marcela
Persönliche Seite #2043523
Lesenswert?

http://www.evidence.eu.com/download/flex_data_sheets/datasheet_FLEX003_%28v1_03.07.2008%29.pdf

Wenn das Dokument richtig deute sind 6 LEDs auf dem Board, die nicht 
dazu gedacht sind von dir angesteuert zu werden.

Du müsstest also an einen von den vielen Pins eine eigene LED 
anschließen. In deinem Programm dann den Pin als Ausgang definieren und 
auf Logisch 1 oder 0 setzen um die LED ein bzw. auszuschalten (je 
nachdem, wo du das andere Beinchen der LED angschlossen hast).
OP #2044765
Lesenswert?

Ok, wenn ich richtig versstanden habe, kann man die LED mit RB14 
ansteuern.

Ist dann folgender CODE richtig?
1
 #include <p33Fxxxx.h>
2
#include <stdio.h>
3

4
#define LEDSYS PORTBbits.RB14
5

6
int main(void)
7
{
8
  TRISBbits.TRISB14 = 0;
9

10
  while(1)
11
  {
12
    char i=0;
13

14
    // toggle LED
15
     if (LEDSYS == 1)
16
     {
17
         LEDSYS=0;
18
     }
19
     else
20
     {
21
         LEDSYS=1;
22
     }
23
    
24
    // delay
25
    for(i=0;i<255;i++)
26
    {
27
    }
28
  }
29
}
#2044772
Lesenswert?

Das ist kein Schaltplan.
Das ist der Belegungsplan der Steckverbinder.

Daraus kann man aber nichts ableiten, wo an der CPU nun was 
angeschlossen ist. Für deine Aufgabenstellung brauchst du detailiertere 
Pläne, die die Schaltung auf der Platine zeigen.

Hast du denn keine Demoprogramme zum Board?
Da wird doch meistens jede noch so klitzekleine Kleinigkeit in einem 
Programm in Aktion gezeigt.
OP #2045218
Lesenswert?

Oh sorry, habe die falsche pdf hochgeladen...
Port B Pin 14 ist das richtige zur LED
Hat auch kurz geblinkt. jetzt net mehr.. hmm, warum???
Habe nichts geändert...

habe die schleife erweitert. mein code sieht jetzt so aus:
1
 
2
//Setze Den Pin als Ausgangspin
3
  TRISBbits.TRISB14 = 0;
4

5
  // Setze PortB.Pin14 auf 1 (5V)
6
  PORTBbits.RB14  = 0;
7
oscConfig();
8

9
  //Schleife
10
  while(1)
11
  {
12
  int i=0;
13
        int j = 0;
14

15
    // toggle LED
16
     if (LEDSYS == 1)
17
     {
18
         LEDSYS=0;
19
     }
20
     else
21
     {
22
         LEDSYS=1;
23
     }
24
    
25
    // delay
26
    for ( i=0; i<5000; i++)
27
    { j=0;
28
      for ( j=0; j<100; j++)
29
      {
30
      }
31
    } 
32
  }

hat auch funktioniert. doch  jetzt  geht es wieder mal nicht...

hat jemand ne andere lösung anstatt der doppelten for schleife???

Gruß
OP #2047357
Lesenswert?

danke, hab es selbst herausgefunden.

ein LED blinkt. Die Warteschleifen waren zu lang, wodurch es lange 
gedauert hat, bis die schleifen durch waren. i=5 und j=3 gewählt.
Außerdem liest man mit LATBbits.LATB14 ein.

hier der richtige code...
1
//Setze Den Pin als Ausgangspin
2
  TRISBbits.TRISB14 = 0;
3

4
  // Setze PortB.Pin14 auf 1 (5V)
5
  PORTBbits.RB14  = 0;
6
oscConfig();
7

8
  //Schleife
9
  while(1)
10
  {
11
  int i=0;
12
        int j = 0;
13

14
    // toggle LED
15
     if (LATBbits.LATB14 == 1)
16
     {
17
         LATBbits.LATB14 =0;
18
     }
19
     else
20
     {
21
         LATBbits.LATB14 =1;
22
     }
23
    
24
    // delay
25
    for ( i=0; i<5000; i++)
26
    { j=0;
27
      for ( j=0; j<100; j++)
28
      {
29
      }
30
    } 
31
  }




gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren