PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATTINY13-20 und Delay?



Dirk M
06.03.2007, 20:57
Hallo,

bin schon seit über 2 Stunden am versuchen ein Delay für den ATTiny13 hinzubekommen..

Hätte da jemand eine Idee?

Wenn ich es mit der delay.h versuche, passt die Anwendung nicht mehr auf den Chip :cry:

Schonmal vielen Dank.

Gruß
Dirk

vklaffehn
06.03.2007, 21:08
soweit ich weiß, ist in der delay.h nur ein wirklich kurzes Codeschnipsel als inline ASM definiert, hast du die Optimierungsstufe vom GCC auf -S0 gestellt? Da falle ich auch gelegentlich drauf rein und wundere mich, wenn 5 Zeilen plötzlich den Code um 5 KB aufpusten....

Dirk M
06.03.2007, 21:12
Habe bis auf die Frequenz alles in Avr Studio so gelassen, wie es war... also -O0.

Oder muss ich da noch was anderes einstellen?

vklaffehn
06.03.2007, 21:14
Jupp!! bei -O0 optimniert der gar nicht, das pumpt den Code gern mal auf den Faktor 10-100 auf......
-S0 steht glaube ich ganz unten in der Liste.

bL1nK
06.03.2007, 21:14
delay ist voll böse!! sowas macht ma nit

pollen auf nen event, da verschenkt man rechenzeit.

aber wenn du ein undefiniertes delay haben willst mach halt einfach ne schleife.



uint8_t count;
float multi = 2;
for (count = 0; count <= 0xFF; count++)
multi *= 1.2;


jetzt hast ne schleife die bis 256 geht und ne zeitaufwendige rechnung durchführt ;) float multiplizieren kostet am meisten rechenzeit.

nachteil du hast halt jetzt keinen definierten delay wert.

vklaffehn
06.03.2007, 21:19
naja, delay macht ja nix anderes, als eine Schleife aus NOP 's einzubauen, also nicht soo der Unterschied?

Und den Code nur mal so mit einer float-Variable aufpusten würd ich nicht machen.....

Dirk M
06.03.2007, 21:21
Delay funktioniert nun :)

Lag an -O0 ...

wie ist eigentlich der maximale Delay Wert?

vklaffehn
06.03.2007, 21:23
steht irgendwo in der Hilfe zur AVRlibc, das hängt, glaube ich, vom µC-Takt ab