Hallo, habe folgenden Code mit dem avr-gcc übersetzt #include<avr\io.h> #include<avr\interrupt.h> void init_Ex4(void) { TCCR2 = (1<<WGM20)+(1<<COM21)+(1<<CS20); // Timer2 sysf/1 DDRB = 0xFF; // Portb ausgang PORTB = 0x08; // test OCR2 = 0xE0; // Compare Value } int main() { init_Ex4(); while(1); //OCR2++; return(0); } aus; OCR2 = 0xE0; macht der gcc LDI R24,0xE0 Load immediate STS 0x0043,R24 store direkt to sram (ausschnitt aus dem disassambly) und dementsprechend funktioniert auch nix. Der Simulator zeigt die änderung von ocr2 etliche takte später an. Kann mir da jemand helfen? Florian
1. Welchen µC benutzt du?
2.
>>dementsprechend funktioniert auch nix
Warum sollte das nicht funktionieren?
3. Wieviel ist "etliche Takte" ?
hi, einen atmega8 und lass mich mal zählen. Der cycle counter zeigt eine differenz zwischen zuweisung und erscheinen von ca 250 cyclen. Florian
Das hat einen ganz einfachen Grund >>The OCR2 Register is double buffered when using any of the Pulse Width Modulation >>(PWM) modes. For the normal and Clear Timer on Compare (CTC) modes of operation, >>the double buffering is disabled. The double buffering synchronizes the update of the >>OCR2 Compare Register to either top or bottom of the counting sequence. The synchro- >>nization prevents the occurrence of odd-length, non-symmetrical PWM pulses, thereby >>making the output glitch-free. >>The OCR2 Register access may seem complex, but this is not case. When the double >>buffering is enabled, the CPU has access to the OCR2 Buffer Register, and if double >>buffering is disabled the CPU will access the OCR2 directly. Sprich: Im PWM Mode wird dein OCR2 erst beim TOP(oder BOTTOM) Value geupdated. Solange verharrt der Wert in einem Buffer..
oh ja das habe ich nicht beachtet. Die Datenblätter sind ganz schön komplex. Also viele Dank!
@simon Wie hastn das rauskopieren können....sind die Datenblätter nicht verschlüsselt?
Hallo Florian, du schreibst in Deinem Beitrag, das AVR-Studio ein Assemb. File erstellt!? Wie/wo stellt man sowas ein bei AVR-Studio? Gruß fifi
hi rechts oben findest du einen knopf "togle disassembler window" gruss
jay wrote: > @simon > > Wie hastn das rauskopieren können....sind die Datenblätter nicht > verschlüsselt? *g Könnte ich es dann lesen? In meinem Foxit PDF Reader klicke ich das Textauswahlsymbol an, und ziehe einen Rahmen um den Text. Dann kann ich ihn irgndwo anders auch schon einfügen. Man kann in der Project Configuration auch noch einstellen, dass ein "Listing" erstellt wird. Sprich: Es wird im Debug Ordner eine .lss mit Assemblerbefehlen + C-Code und Kommentare gebaut.
@simon haste deinen reader irgendwie bestochen oder nur gut zugeredet ;) will bei mir nich klappen, da er die auswahl des werkzeugs verbietet...möööh!
Du verweist auf die Version 1.3, runtergeladen/Installiert krieg ich aber immer nur die 2.0. Vielleicht liegts ja daran :(
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.