Hallo, ich hab da mal ne Frage. Mega128, 8 MHz-Quarz, CKOPT gesetzt, CLSEL=1111, SUT=00 ... for(;;){ PORTB=0b00000001; PORTB=0b00000000; } warum kommt da als max. Takt nur 1,14 MHZ raus? im Simulator wird der Ausgang alle 4 Schritte wieder gesetzt. Sollten da nicht mindestens 2 MHz an Takt rauskommen? Danke Thomas
Hi wieso? PORTB=0b00000001; dürfte in ein OUT und ein LDI übersetzt werden. dito für PORTB=0b00000000; Sind 4 Zyklen. Dazu kommt dann noch der nötige JMP mit 3 Zyklen. Macht 7 Zyklen. 8/7=1,14 passt exakt. Matthias
Wofür das LDI? 2 x OUT, 1 x RJMP. Macht 4 Take Zykluszeit. Achso, mit Optimierung natürlich. Ohne Optimierung ein LDI, 2 STS, ein RJMP. Macht 7 Zyklen, vermutlich hat Thomas einfach die Optimierung vergessen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.