clupus
18.06.2005, 22:54
Hallo allerseits,
ich bin recht neu auf dem Gebiet der Hardware-Programmierung und bin auf ein kleines Problem gestoßen:
Ich muss einen Motor für eine gewisse Zeit (ca. 10 sec) laufen lassen. (Seilwinde!) Ich dache nun, dass ich in einer Haeder-Datei eine Zahl (WAIT_RU_DUWN) festlege, die mir in 100ms angibt, wie lange der Motor laufen soll.
Ich hab jetzt also eine kleine Routine geschrieben, die nachdem der Motor aktiviert wurde WAIT_RU_DOWN mal das Makro _delay_ms(100); aufruft. Anschließend wird abgeschalten.
Soweit OK. Jage ich die ganze Sache jetzt durch den avr-gcc und schaue mir das Ergebnis mir avr-objdump -S software.o an, so finde ich zwar irgendwo die Routine mit der Zeitverzögerung, jedoch ist sie leer! Ich verwende den Aufruf:
avr-gcc -g -Os -mmcu=at90s2313 -c software.c
avr-gcc -g -Os -mmcu=at90s2313 software.o -o software.out
Wenn ich statt -Os -O0 verwende, bleibt die Routine bestehen. Bei jerder anderen Optimierungsstufe außer 0 optimiert er mir so meine Zeitverzögerung weg.
Was kann ich dagegen machen?
Vielen Dank im Voraus
Christian
ich bin recht neu auf dem Gebiet der Hardware-Programmierung und bin auf ein kleines Problem gestoßen:
Ich muss einen Motor für eine gewisse Zeit (ca. 10 sec) laufen lassen. (Seilwinde!) Ich dache nun, dass ich in einer Haeder-Datei eine Zahl (WAIT_RU_DUWN) festlege, die mir in 100ms angibt, wie lange der Motor laufen soll.
Ich hab jetzt also eine kleine Routine geschrieben, die nachdem der Motor aktiviert wurde WAIT_RU_DOWN mal das Makro _delay_ms(100); aufruft. Anschließend wird abgeschalten.
Soweit OK. Jage ich die ganze Sache jetzt durch den avr-gcc und schaue mir das Ergebnis mir avr-objdump -S software.o an, so finde ich zwar irgendwo die Routine mit der Zeitverzögerung, jedoch ist sie leer! Ich verwende den Aufruf:
avr-gcc -g -Os -mmcu=at90s2313 -c software.c
avr-gcc -g -Os -mmcu=at90s2313 software.o -o software.out
Wenn ich statt -Os -O0 verwende, bleibt die Routine bestehen. Bei jerder anderen Optimierungsstufe außer 0 optimiert er mir so meine Zeitverzögerung weg.
Was kann ich dagegen machen?
Vielen Dank im Voraus
Christian