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 ??
Gruss und DankCode:#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 } }
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:Ja , ja so ist es, wenn einem die Frauensleut immer vom Programmieren wegholen, um "niedere" Hausarbeiten zu machenCode: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 } */ }![]()
![]()
Bitte meinen Aufruhr hier vielmals zu Entschuldigen....na ja man wird älter und vergesslicher![]()
Gerhard







!!!!!!!!!!!!!!
Zitieren

Lesezeichen