Programm läuft nur einmal ab

Gast #2117360
Lesenswert?

Hallo ich weiß nicht wirklich warum der mc des programm nicht ständig 
ablaufen läst..

also ich hab nen etwas größeres programm geschrieben aber zwecks 
fehlersuche hab ich es mal wirklich sehr stark reduziert..

Ich benutze einen PIC 18F4685

#define _PIC18Fxxx
#include <18F4685.h>

#fuses INTRC_IO, NOMCLR, NOWDT, NOPROTECT, DEBUG // auf internen RC 
laufen
#use delay(clock=2000000)


void main(){
if (input(PIN_D1))
{output_high(PIN_D0);
}
else
 output_low(PIN_D0);
}

//
ich benutz mplab mit CCS C compiler
weiß jemand vielleicht woran es liegen könnte?!

ich hatte es einmal des es lief und eigentlich nix geändert aber als ich 
dann das pic kit 3 abgezogen habe lief nix mehr...

aber so wie ich es jetzt da stehen habe läuft es nur einmal runter und 
bleibt dann stehen

hatte schonmal ein do, while drin (hört sich zwar bloed an aber na ja) 
hat auch nicht geholfen

danke schonmal für eventuelle antworten
Gast #2117365
Lesenswert?

probiers mal mit
1
#define _PIC18Fxxx
2
#include <18F4685.h>
3

4
#fuses INTRC_IO, NOMCLR, NOWDT, NOPROTECT, DEBUG // auf internen RC
5
laufen
6
#use delay(clock=2000000)
7

8

9
void main(){
10
  while (1) {
11
   if (input(PIN_D1))
12
        {output_high(PIN_D0);
13
     }else {
14
    output_low(PIN_D0);
15
    }
16
  }
17
}
Gast #2117380
Lesenswert?

Executing: "D:\Program Files\PICC\Ccsc.exe" +FH "main.c" +DF +LN +T +A 
+M +Z +Y=9 +EA
*** Error 48 "main.c" Line 10(1,22): Expecting a (
      1 Errors,  0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Thu Mar 24 14:05:36 2011


das sagt mir die build... wo soll denn da ne klammer fehlen!?=
Gast #2117391
Lesenswert?

ok des war mein fehler hatte da den text zur beschreibung ned hinter die 
// geschrieben..

ok jetzt macht er folgendes..
des programm wartet jetzt quasi bis ich den pin auf high habe.. aber 
sobald das ist.. geht er nicht mehr auf low wenn der Input pin auf low 
geht..

quasi als hätte ich ne selbsthaltung
Gast #2117399
Lesenswert?

#define _PIC18Fxxx
#include <18F4685.h>

#fuses INTRC_IO, NOMCLR, NOWDT, NOPROTECT, // auf internen RC
#use delay(clock=2000000)

void main()
{
while (1) {
if (input(PIN_D1)==1)
{output_high(PIN_D0);
     }
else
output_low(PIN_D0);
}
}


;) ok des ist er jetzt mit while.. wenn ich jetzt return rein baue dann 
erkennt er das als command.. aber wenn ich es innerhalb der void mache 
dann sagt er mir nach dem build (böse böse das return kann ned in der 
void stehen)
wenn ich es unter die void main mache dann will er es deklariert haben 
obwohl er es als command erkennt..
#2117409
Lesenswert?

Schmolke schrieb:
> ;) ok des ist er jetzt mit while.. wenn ich jetzt return rein baue dann
> erkennt er das als command.. aber wenn ich es innerhalb der void mache
> dann sagt er mir nach dem build (böse böse das return kann ned in der
> void stehen)
> wenn ich es unter die void main mache dann will er es deklariert haben
> obwohl er es als command erkennt..

Was willst du mit einem return? Ein return hat in der main-Funktion 
nichts zu suchen! Du solltest mal klare und verständliche Sätze 
formulieren, vorzugsweise mit Groß- und Kleinschreibung.
#2117418
Lesenswert?

Hallo,
erstmal wegen der Übersichtlichkeit, ist es sinnvoll den Code 
einzurücken.
Macht man am Anfang eigentlich immer falsch. Ich spreche da aus 
Erfahrung:). Das sieht dann etwa so aus:
1
void main() {
2
 while (1) {
3
    if (input(PIN_D1)==1){
4
        output_high(PIN_D0);
5
    }else
6
       output_low(PIN_D0);
7
    
8
 }
9
}
Gruß Jannis

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