Probleme mit CodeWarrior

Gast #4393649
Lesenswert?

Hallo,
für mein Studium brauche ich für eine Studienarbeit CodeWarrior. Ich 
habe mir jetzt die neuste Version heruntergeladen und das gegebene 
Programm abgetippt. Leider will dieses Programm nicht so funktionieren 
wie in den Unterlagen. Nach vielen Stunden erfolgloser Fehlersuche wende 
ich mich nun an diese Forengemeinde. Ich bin im Moment im 4. Semester an 
einer FH im Bachelorstudiengang Elektro- und Informationstechnik.

Meine Codewarrior-Version ist 10.6.4.
Das Programm habe ich von den Studienunterlagen einfach abgetippt, will 
aber nicht so recht laufen.
Es handelt sich um ein Lauflicht das in einer Endlosschleife immer 
wieder durchlaufen werden soll. Aber immer wenn ich auf Debug drücke 
kommt die Fehlermeldung das die Variable "PTB" nicht deklariert ist.
Mein Code steht unten und im Anhang. Im Anhang ist auch noch die Datei 
mc9s08ac32.h und die derivative.h.

Viele Kommentare in dem Code stammen auch schon von mir.

Vielen Dank

Mein Code:
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */

// IO Ports
int delay = 5000;    // Variable delay ist ein Integer mit Startwert 
5000

static void Delay (void)  // Unterprogrammm Delay,
{
  int cnt =0;      // Variable cnt ist ein Integer mit Startwert 0
  while (cnt < delay)  // Whileschleife, solange cnt kleiner ist als 
delay durchlaufen
  {
    __RESET_WATCHDOG(); /* feed the dog */ // der Watschdog wird bei 
jedem durchlaufen der While-Schleife zurückgesetzt
    cnt++;    // die Variable cnt wird bei jedem Durchlauf um 1 erhöht
  }
}          // Nachdem Unterprogamm Delay ausgeführt springe wieder 
zurück wo vorher gewesen ist!!

static void LightShow(void)    // Unterprogramm LightShow
{

  unsigned char i;      // Variable i ist unsinged char, d.h. kein 
Vorzeichen von 0 bis 255, nach überlauf wieder Null
  for (i = 1; i > 0; i <<= 1)  // Forschleife (mit i ist 1 starten; 
wiederholen solange i größer 0 ist; was <<=i bedeutet weiß ich nicht)
  {
    PTB = i;            //Daten werden an Port B ausgegeben, woher das 
Programmm dass i Binär umgewandelt
              // an B ausgegeben werden muss? bei mir scheinbar nicht
    Delay();      // nachdem die Lightshow einmal durchgelaufen ist 
springe zum Unterprogramm Delay
  }            // danach wieder hierher springen, das wiederholen bis i 
von 1 bis 0(256) gelaufen ist!!!
}              // Wenn Unterprogramm LightShow (und auch Delay) 
durchlaufen ist springe wieder zurück ins Hauptprogramm

// Hauptprogramm
void main(void)      // Das Hauptprogramm main
{
 // EnableInterrupts;    // Interrupts nicht freigegeben

  DDRB = 0xFF;        // Data Direction Register Port B
              // alle Pins des Port B als Output

  LightShow();      // Springe zum Unterprogramm LightShow und 
durchlaufe es, danach wieder hierher springen

  for(;;)          // Forschleife die immer wieder durchlaufen wird.
  {
    LightShow();    // Springe immer gleich wieder zum Unterprogrammm 
LightShow
  }            // Endlosschleife für die LightShow

}              // Bitte sicherstellen das sie nie diese
              // Funktion verlassen!!
Angehängte Dateien:

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