Programm läuft nicht ohne debug_printf??

OP #1614468
Lesenswert?

Tag auch, vor kurzem hatte ich mich mal wegen einem IR Sensor hier 
gemeldet, das hat sich mittleriwele erledigt wir haben den Fehler 
gefunden: wir hatten Masse nicht angesteckt ;)

naja auf jedenfall neuer fehler:

Unser Programm ist lauffähig, macht das was es soll und funktioniert 
formidabel. Das Problem ist jedoch das am Anfang der whileschleife die 
durchgehend unsere sensoren abfragt ein "debug_printf" steht und ohne 
dieses funktioniert das programm nicht. wir können auch nichts drucken 
lassen, dann funktioniert es trotzdem aber leider nur im debug modus. 
beim normalen laufenlasen funktioniert es nicht mehr. auskommentieren 
der zeile führt zu gar keiner reaktion des programms.

hier der code in frage:
1
while(1){
2
//  debug_printf("Ultra - Licht 1 - Licht 2\n");
3

4
  for(i=0;i<10;i++){
5
  if(AD0DR1&(1<<31)){
6
    b=((short)(AD0DR1>>6))/10;
7
    c=(1000-((short)(AD0DR2>>6)))/10;
8
    d=(1000-((short)(AD0DR4>>6)))/10;
9
    debug_printf("%i   ",b);
10
    debug_printf("     %i     ",c);
11
    debug_printf("   %i\n",d);
12
    if(b>15){
13
      IO1SET|=(1<<17); // P1.17 (Gelb) an!   
14
      }
15
    else{
16
      IO1CLR|=(1<<17); // P1.17 (Gelb) aus!
17
      }
18
    if(d<30){
19
      IO1SET|=(1<<18); // P1.18 (Grün) an!
20
      }
21
    else{
22
      IO1CLR|=(1<<18); // P1.18 (Grün) aus!
23
      }
24
    if(c<30){
25
      IO1SET|=(1<<16); // P1.16 (Rot) an!
26
      }
27
    else{
28
      IO1CLR|=(1<<16); // P1.16 (Rot) aus!
29
      }
30
  }
31
  wait(50);
32
}
33
}

wir sind kurz vorm verzweifeln weil das ganze bald abgenommen wird und 
es schade wäre wenn wir nur über debug starten können.

vielen dank für eine schnelle antwort
OP #1614483
Lesenswert?

oh sorry, in der hast ganz vergessen

es handelt sich um ein lpc2148p board also der olimex arm7 prototyp.
daran haben wir 2 sharp IR sensoren geklemmt und einen 
ultraschallsensor.
wir programmieren in c, mit rowley crossworks.

problem ist wie gesagt:

debug_printf ist drin:
debug modus läuft perfekt
normaler run modus läuft nicht

debug_printf ist nicht drin:
nichts läuft mehr
Gast #1614520
Lesenswert?

cool, muss was zeitliches sein. Aber wie started ihr eure Wandlung?

Alles etwas unsauber, wenn der Wandler mit channel 1 fertig ist lest ihr 
die Ergebnisse für 1,2 und 4 aus. Ob die anderen beiden fertig sind 
scheint egal zu sein.
OP #1615534
Lesenswert?

Peter Diener schrieb:
> Ich habe den Verdacht, dass das etwas damit zu tun haben könnte, dass
> debug_printf recht lange dauert und diese Verzögerung für was auch immer
> benötigt wird.
> Ich würde testweise dort Wartezeiten einbauen.
>
> Grüße,
>
> Peter

jl schrieb:
> cool, muss was zeitliches sein. Aber wie started ihr eure Wandlung?
>
>
>
> Alles etwas unsauber, wenn der Wandler mit channel 1 fertig ist lest ihr
>
> die Ergebnisse für 1,2 und 4 aus. Ob die anderen beiden fertig sind
>
> scheint egal zu sein.


Also erstens hab ich davor mal unsere wait funktion mit verschiedenen 
werten gesetzt so 25, 50 100 millisekunden, hat aber nichts geändert.

unsere AD-Wandler konfiguration ist diese:
1
AD0CR|=(1<<1); //KANAL 1
2
AD0CR|=(1<<2); //KANAL 2
3
AD0CR|=(1<<4); //KANAL 3
4

5
AD0CR|=(1<<9); // 110 an Bit 8-15 schreiben
6
AD0CR|=(1<<10); // 110 an Bit 8-15 schreiben
7

8
AD0CR|=(1<<16); // INSTANT START
9
AD0CR|=(1<<21); // AN!
10

11
AD0CR&=~(1<<17);
12
AD0CR&=~(1<<18); // Auflösung auf 10 bits
13
AD0CR&=~(1<<19);
14

15
// Ultraschall an AD0.1
16
// Licht 1 an AD0.2 
17
// Licht 2 an AD0.3

und das mit dem auslesen wenn channel 1 fertig ist schon in ordnung so 
;)
es funktioniert ja :) aber danke für den hinweis

hat noch jemand ideen warum uns das debug dazwischen funken könnte?
OP #1615684
Lesenswert?

Hat sich erledigt Leute: Eigene Dummheit wie es immer so ist ;)

in meiner wait funktion hatte ich ein y verwendet das vorher nicht 
initialisiert wurde, und irgendwie scheint mein compiler nicht über 
debug befehle im normalen run modus hinweg zu kommen.

Auf jedenfall funktioniert es jetzt. Vielen dank für die Bemühungen :)

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