Hallo Witkatz !
Vielen Dank für Deine beispielhafte Unterstützung! 
Nur ich verstehe eines nicht , warum hier im anderem Programm "__delay_ms(150) "  wunderbar funktioniert.
Ich kann keinen Unterschied an der Konfigurierung  feststellen, oder gibt es da Falltürchen in den man als Anfänger noch fällt ??
	Code:
	
#include <xc.h>
#define _XTAL_FREQ 4000000 // aktuelle Oszillatorfrequenz für die richtige Zeitdauer des __delay_ms Makros
// hier 4.0MHz
// CONFIG
#pragma config FOSC = HS        // Oscillator Selection bits (HS 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 init(void){
    TRISD = 0x00; // RD0 bis RD7 = Ausgang
}
void main(void){
    init();
    
    // Endlos Hauptschleife
    while(1){
        PORTD = 0; // Port D = 0, alle 8 LED aus
        do{                     // do While Kontrolle am Ende
            __delay_ms(150);    // der Zaehlschleife 150ms warten
            PORTD++;
        } while (PORTD != 0xFF); // Zaehlende max 255/0xFF
    }
    
}
 Gruss und Dank
Gerhard
- - - Aktualisiert - - -
Nachtrag:
Menno bin ich ein "Blödian"  , habe ich doch das __delay_ms(xy)  hinter der zweiten Zeile : PORTD = 0b11111000 ; vergessen...vor den Kopf fasse....grolll !!!!!!!!!!!!!!
 !!!!!!!!!!!!!!
Ich habe doch daran nicht gedacht, das die "main" eine "loop" ist....grrrrrr
So funzt es jetzt:
	Code:
	void init(void){
    TRISD = 0x00; // RD0 bis RD7 = Ausgang
}
void main(void)
{
    init();
   
    PORTD = 0B11000000; // "0" Segmentausgabe, an PORD uebergeben (7-Segm.LED)
    __delay_ms(500);
    PORTD = 0B11111000; // "7" Segmentausgabe, an PORD uebergeben (7-Segm.LED)
    __delay_ms(500);
    
  /*  while(1)
    {
        //hier main-loop bei Bedarf halten
    }
  */   
    
}
 Ja , ja so ist es, wenn einem die Frauensleut immer vom Programmieren wegholen,  um "niedere" Hausarbeiten zu machen   
 
Bitte meinen Aufruhr hier vielmals zu Entschuldigen....na ja man wird älter und vergesslicher 
Gerhard
						
					
Lesezeichen