Forum: Mikrocontroller und Digitale Elektronik Programmierung mit CC5x-Compiler (PIC 16F84)


von Georg S. (charzzle)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

mein Name ist Georg und gehe in die Berufskolleg.
In der Schule müssen mein Schulkamerad und ich ein Projekt machen.
Unser Projekt heißt der Gedächtnistrainer.
Hier ist die Seite :
http://www.elv.de/Ged%C3%A4chtnis-Trainer-GT-100-Komplettbausatz/x.aspx/cid_74/detail_10/detail2_6878

Wir sind mit der Platine soweit fertig. Wir fange jetzt an zu 
programmieren. Könnt ihr bitte Tipps geben oder ein 
Muster-Programmierung zeigen wie wir das machen sollten? Ihr müsst bitte 
uns bitte helfen.

Hier ist das Programm, was wir bisher gemacht haben:
Stimmt es soweit??


// fuer CC5X    Projekt-Gedächtnistrainer                     projekt1.c
//======================================================================
// Funktion:
//
// Verfahren:
//
// Anschluesse:
//
//----------------------------------------------------------------------
// Autor:
//======================================================================
   #include <16f84a.h>
//----------------------------------------------------------------------
   #pragma config = 0x3FF1              //PWRT = on, FOSC = XT, CP_off
//======================================================================
// Vereinbarungen/Deklarationen
//----------------------------------------------------------------------
void init(void);

//======================================================================
// Hauptprogramm
//
//----------------------------------------------------------------------
void main(void)
{
  srand(time(0));//setzt den Zufall

  int Level=1;
  int n=15; //Anzahl der Level
  int ln=2; //Anzahl der Steigerung pro Level
  int Array[ln*n];

  int i,fail;

  while(1)
  {
          for(i=0;i<ln*n;i++) Array[i]=0;

          for(i=0;i<Level*ln;i++)//lässt im Zufall blinken
          {
                if(rand() % 2 ==0)
                {
                          //rechte Lampe leuchten lassen
                          Array[i]=1;
                }
                else
                {
                          //linke Lampe leuchten lassen
                          Array[i]=2;
                }
          }
          fail=0;
          for(i=0;i<Level*ln;i++)//liest die Eingabe ein und vergleicht
          {
                //warten bis ein Button gedrückt wurde
                if(Array[i]==2 /*&& der rechte Button gedrückt wurde*/)
                {
                               fail=1;//Fehler
                               break;
                }
                if(Array[i]==1 /*&& der linke Button gedrückt wurde*/)
                {
                               fail=1;//Fehler
                               break;
                }
          }
          if(fail==1) //war es ein Fehler
          {
                      if(Level>1) Level--; //ja -> Level herabsetzen
          }
          else
          {
                      if(Level<n) Level++; //nein -> Level heraufsetzen
          }

          //richtige Levellampe leuchten lassen
  }

  return 0;
}
//======================================================================
// init                         // Voreinstellungen
//
//----------------------------------------------------------------------
void init(void)
{
  TRISB = 0x00;
  OPTION_REG = 0x07;
  anzeige = 0;
}
//======================================================================

Dateianhang:
Schaltplan

: Verschoben durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was hat das mit "PC-Programmierung" zu tun?

Richtig: nichts.

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.