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.
Mit dem Debuggen komme ich noch nicht zurecht, bin ja noch PIC-LehrlingCode:/* * 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); }
Vielleicht kann ja mal bitte wer mir auf die "Sprünge" helfen ???
Gruss und Danke







Zitieren

Lesezeichen