Ungleichmäßige Blinkfrequenz

Gast #4456537
Lesenswert?

Hallo Forum,

ich habe begonnen, mich in die Verwendung von PIC-Mikrocontrollern 
einzuarbeiten. Mein verwendeter Controller ist der PIC16F887. Zum 
Programmieren nutze ich MPLAB X IDE v3.20 unter Linux und zum Flashen 
das PICkit3. Als Taktquelle soll der interne Oszillator dienen. Ich habe 
zum Test ein kleines Programm geschrieben, welches an Port D1 eine LED 
blinkend ansteuern soll. Soweit läuft das Programm, allerdings beobachte 
ich eine Eigenart, welche ich mir nicht erklären kann. Die LED blinkt 2x 
im vorgegebenen Abstand von 500ms, die darauf folgende pause ist aber 
(ca.) 1000 ms lang. Ich kann mir auf dieses Verhalten keinen Reim 
machen.

In etwa so sieht das Blinken der LED aus:

____|''''|_____|''''|__________|''''|_____|''''|__________

Hier der Quellcode:
1
#include <htc.h>
2
#include <pic16f887.h>
3
#pragma config FOSC=INTRC_NOCLKOUT
4
#define   _XTAL_FREQ  4000000
5
#use delay(clock=4000000)
6

7
void main(void) {
8
    
9
    TRISD=0x00;
10
    
11
    do{
12
        
13
    __delay_ms(500);
14
    PORTD = 0b00000010;
15
    __delay_ms(500); 
16
    PORTD = 0b00000000;
17
     
18
    }while(1);
19
   
20
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren