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
Lesezeichen