problem mit warteschleife

Gast #1634526
Lesenswert?

hey
is mir schon fast peinlich: bei folgendem code werden beide 
for-schleifen nie ausgeführt, code größe ist 76 byte.
1
while(1)
2
{
3
  wait();
4
  for(uint16_t i = 0;i<65535;i++);
5
  PORTD = ~PORTD;
6
}
7

8
void wait()
9
{
10
  for(uint16_t i = 0;i<65535;i++){}
11
}

wenn ich den funktionsaufruf auskommentiere, steigt die codegröße auf 96 
byte. wtf? im simulator springt er zwar in die funktion, führt aber die 
schleife nicht aus, genau so wie die schleife in der main.

kompletter code:
testprojekt.c
1
#include "testprojekt.h"
2
#include "std_fkt.h"
3

4
int main()
5
{
6
  DDRD = 0xFF;
7
  PORTD = 0x01;
8
  while(1)
9
  {
10
    wait();
11
    for(uint16_t i = 0;i<65535;i++);
12
    PORTD = ~PORTD;
13
  }  
14
}

std_fkt.c
1
#include "testprojekt.h"
2
#include "std_fkt.h"
3

4
void wait()
5
{
6
  for(uint16_t i = 0;i<65535;i++);
7
}

testprojekt.h
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
#define F_CPU 1000000

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