Hallo Freunde ,
bestimmt ist es wieder einer der Anfänger-Fallstricke in den ich da geraten bin , aber ich weiss nicht mehr weiter. Ich habe mich schon auf der Microchip DeveloperHelp Seite belesen , ich komme einfach nicht weiter.
Hier mal mein Code, wo es um eine Warteschleife geht, habe 2 versch. Funktionen gemacht, aber keine funktioniert und lässt das Programm nicht weiterlaufen. Es geht um eine einfache 7 Segment Anzeige, am PORT D angeschlossen.
Code:
/* 
 * File:   segmentanzeige.c
 * Author: gerhard
 *
 * Created on 22. März 2017, 14:15
 */
 
#include <stdio.h>
#include <stdlib.h>
#define _XTAL_FREQ 4000000  //EasyPIC-40 FQ= 4.0MHz
#include <xc.h>             // MCU = PIC16F877A

// CONFIG
#pragma config FOSC = XT        // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF        // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF        // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)

//*************************************************************************************
void warten(int x)  // Warteschleifen Versuch 1
{
    for (int z =0; z <= x; y++)
    {
    __delay_ms(1);
    }
}
//*************************************************************************************
void delay()   // Warteschleifen Versuch 2
{
        long int y;
                for(y=0;y< 100;y++)
    { ; }
}
//*************************************************************************************

int main(int argc, char** argv) {
    // PORT D = Ausgang für Segmente der Anzeige, LOW aktiv
    TRISD = 0B00000000;  // D0..7 OUTPUT
    
    PORTD = 0B11000000; // eine 0 anzeigen
   // warten(100);      // geht nicht, bleibt hängen ??
    delay();            // geht auch nicht, bleibt auch hängen ??
    PORTD = 0B11111000; // eine 7 anzeigen
    
    return (EXIT_SUCCESS);
}
Mit dem Debuggen komme ich noch nicht zurecht, bin ja noch PIC-Lehrling

Vielleicht kann ja mal bitte wer mir auf die "Sprünge" helfen ???

Gruss und Danke