@radbruch
Schau mal zum Spaß in's ATmega8.pdf (auf der Asuro-CD)
Im Kapitel 'Instruction Set Summary' ab Seite 284 sind auch Befehle mit 4 Takten zu finden. (Schlimm sind die mit Takteanzahlen von 1 bis 3, je nach frag mich nicht.)
Und wie man ja in diesem Thread sieht, kommt es da manchmal auf die Spalte 'CLOCKS' an. Zum Glück nur extrem selten zu lesen Hauptsächlich bei Interruptdingen wie hier ja nun mal.

Die Zeile mit dem += wird im Assembler so aufgelößt:
in r24, 0x24 ; 36
lds r25, 0x0061
add r24, r25
out 0x24, r24 ; 36
Warum ich im Excel-Blatt aber nur 3 Takte 'dazumogel' kann ich nicht mehr sagen.
@radbruch
Hier haben wir also doch nur Befehle, die nur einen Takt benötigen.


In version.c der Lib noch zu finden wer da das helle Köpfchen war:
Code:
/****************************************************************************
*
* File Name:   asuro.c
* Project  :   asuro library modified for IR collision detector
*
* Description: modifications made in following functions:
*
* SIGNAL (SIG_OUTPUT_COMPARE2)	->	SIGNAL (SIG_OVERFLOW2)
* Gettime()				counts now 36kHz
* Init()				timer2 modified for adjustable duty cycle
* Batterie()				bug fixed
* Sleep()				counts now 36kHz
* Msleep()				counts now 36kHz
*
* Ver.     Date         Author           Comments
* -------  ----------   --------------   ------------------------------
* beta2	   11.06.2005   Waste   	 asuro library
* -------  ----------   --------------   ------------------------------
*****************************************************************************/
(Ich sehe gerade in meiner Version V01, dass ich am 19.06.2005 (ältestes Dateidatum) angefangen hatte über diese Änderung zu grübeln. Wann ich selber drauf gekommen bin, steht da natürlich nicht.)