c compiler Unterprogramme aufrufen mit Funktion

Gast #4995324
Hallo,
Bin dabei mir den C Compiler selbst beizubringen. Die ersten Programme 
waren auch erfolgreich. Jetzt wollte ich das Blinky Programm so 
verändern das die Zeitschleife mit einem Unterprogramm in der for 
schleife realisiert wird. Der Compiler von MikroElektronica sagt keine 
Fehler aber die Diode leuchtet ständig. Programiert wird der PIC 16F630. 
Was ist da faul.  Nachstehend noch das Programm.

//** D E F I N E S *********************************************
#define LED        PORTC.RC0        //LED liegt an Port C RC0

//**Prototype***************************************************
void pausen ( int ms );



void main()
{                       // Hauptprpgramm
  TRISC = 0;            // set PORTC to be digital output

  PORTC = 0;            // TURN off LEDs on PORTC



                while(1) {             //Hauptschleife
                LED = 1;               //LED einschalten
                pausen (1000) ;           //ca. 1 Sekunde (1000 ms) 
warten
                LED = 0;               //LED ausschalten
                pausen (1000) ;           //ca. 1 Sekunde (1000 ms) 
warten
        }
}

void pausen(int ms)
{
       int i=0;
       for( i=0; i<ms; i++ ) {
         delay_ms(1000);
       }
}
Gast #4995379
Carl D. schrieb:
>>> Nach weiteren 16,7 Minuten.
>> Anders ausgedrückt: 16min 40s
>
> Falls er den Mega8 mit eine Präzisionsquarz betreibt.

Das ist völlig unabhängig vom Quarz. 16,7min ist nur eine andere 
Schreibweise.
16min 40s sind exakt 16,7min. Denn 40s sind 0,7min :-)
Gast #4995381
Alles klar. Habe die schleifen drastisch verkleinert. Funktioniert 
jetzt.
Unter strich aber kann ich sagen >>> Im prinzip richtig zeit 
falscheingestellt.

Danke an alle für die Hinweise.

Gruß
Karl-Heinz
Gast #4995392
Kolja schrieb:
> Carl D. schrieb:
>>>> Nach weiteren 16,7 Minuten.
>>> Anders ausgedrückt: 16min 40s
>>
>> Falls er den Mega8 mit eine Präzisionsquarz betreibt.
>
> Das ist völlig unabhängig vom Quarz. 16,7min ist nur eine andere
> Schreibweise.
> 16min 40s sind exakt 16,7min. Denn 40s sind 0,7min :-)

Seit wann ist 2/3 = 0.7?
Gast #4995406
Jemand schrieb:
> Kolja schrieb:
>> Carl D. schrieb:
>>>>> Nach weiteren 16,7 Minuten.
>>>> Anders ausgedrückt: 16min 40s
>>>
>>> Falls er den Mega8 mit eine Präzisionsquarz betreibt.
>>
>> Das ist völlig unabhängig vom Quarz. 16,7min ist nur eine andere
>> Schreibweise.
>> 16min 40s sind exakt 16,7min. Denn 40s sind 0,7min :-)
>
> Seit wann ist 2/3 = 0.7?

Ja, hast völlig recht. Das sind 0,66666.

Aber die 16,7 kommen nicht von mir. Was aber garantiert richtig ist, daß 
1000s genau 16min 40s sind.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.