Forum: Mikrocontroller und Digitale Elektronik infinieon lauflicht


von otti (Gast)


Lesenswert?

Hallo zusammen in der Schule programmieren wir seit neuem 
Mikrokontroller, ein sehr spannendes Thema. Bin seit drei Stunden am 
ausprobieren, was ich falsch mache, ich möchte ein Lauflicht 
programmieren mit den LED auf dem Board. Leider blinken durch meine whle 
schleiffe immer nur die zulezt programmierten, kann mir jemand helfen.

Der Mikrokontroller kommt von infineon es handelt sich um das Easy kit 
XE 166 Family.

Wäre sehr dankbar um eure Hilfe.


typedef unsigned char  ubyte;    // 1 byte unsigned; prefix: ub
typedef signed char    sbyte;    // 1 byte signed;   prefix: sb
typedef unsigned int   uword;    // 2 byte unsigned; prefix: uw
typedef signed int     sword;    // 2 byte signed;   prefix: sw
typedef unsigned long  ulong;    // 4 byte unsigned; prefix: ul
typedef signed long    slong;    // 4 byte signed;   prefix: sl



#include <XE167F.h>          /* standard I/O .h-file              */


volatile uword  counter1 = 0;
volatile uword  counter2 = 0;
volatile uword  counter3 = 0;
volatile uword  counter4 = 0;
volatile uword  counter5 = 0;
volatile uword  counter6 = 0;



{
    P10_IOCR00 = 0x80;
    P10_IOCR01 = 0x80;
    P10_IOCR02 = 0x80;
    P10_IOCR03 = 0x80;
    P10_IOCR04 = 0x80;
    P10_IOCR05 = 0x80;
    P10_IOCR06 = 0x80;
    P10_IOCR07 = 0x80;

    P10_POCON = 0x0000;

    P10_OUT = 0xff;

  while (1)
  {
      P10_OMRL = 0x0101;
      counter1 = 0x020;

      while (counter1 > 0)
      {
        counter1--;

        counter2 = 0xFFFF;
        while (counter2 > 0)
        {
          counter2--;
                //ENDE

                 P10_OMRL = 0x0303;
                 counter3 = 0x020;
                 while (counter3 > 0)
                 {
                        counter3--;

                        counter4 = 0xFFFF;
                        while (counter4 > 0)
                        {
                            counter4--;
                            P10_OMRL = 0x0606;
                            counter5 = 0x020;

                            while (counter5 > 0)
                            {
                                counter5--;
        counter6 = 0xFFFF;
                                while (counter6 > 0)
                                {
                                        counter6--;
                                }
                            }
                       }
                  }
             }
         }
     }
 }

von Frank (Gast)


Lesenswert?

Kleiner Tipp:
Formatiere den code durch dementsprechende Einrückungen. Nutzte die Code 
Umgebung damit der Code gehiglighted wird.

Beispiel:
1
#include "XYZ.h"
2
3
int main(void)
4
{
5
  int a = 0; //Kommentar
6
7
  while(1)
8
  {
9
    if(a==5)
10
    {
11
      a = 0;
12
    }
13
  }
14
}

Ansonsten werden die meisten keine Lust haben.

von fop (Gast)


Lesenswert?

Du darfst halt nicht so ungeduldig sein :-))), nachdem er ca. 2 
Millionen Mal Led 1 und 2 getoggelt hat, toggelt er auch mal Led 0 und 
1. Und wenn das ca 2 Millionen mal passiert ist, wird dann auch mal Led 
0 alleine getoggelt. Also Alles eine Frage der Zeit.
Übrigens sind die Einrückungen fast perfekt, nur der Name der Funktion 
ist nicht vorhanden.

von Stefan (Gast)


Lesenswert?

Überleg mal bitte mit welcher Frequenz dein µC läuft, vielleicht hilft 
dir das auf die Sprünge

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.