Forum: Mikrocontroller und Digitale Elektronik Avr Studio Simulator / gcc


von Florian (Gast)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

1. Welchen µC benutzt du?
2.
>>dementsprechend funktioniert auch nix

Warum sollte das nicht funktionieren?

3. Wieviel ist "etliche Takte" ?

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

hi,
einen atmega8 und lass mich mal zählen.
Der cycle counter zeigt eine differenz zwischen zuweisung und erscheinen 
von ca 250 cyclen.
Florian

von Simon K. (simon) Benutzerseite


Lesenswert?

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..

von Florian (Gast)


Lesenswert?

oh ja das habe ich nicht beachtet. Die Datenblätter sind ganz schön 
komplex.
Also viele Dank!

von jay (Gast)


Lesenswert?

@simon

Wie hastn das rauskopieren können....sind die Datenblätter nicht 
verschlüsselt?

von fifi (Gast)


Lesenswert?

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

von Florian (Gast)


Lesenswert?

hi

rechts oben findest du einen knopf "togle disassembler window"

gruss

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von jay (Gast)


Lesenswert?

@simon
haste deinen reader irgendwie bestochen oder nur gut zugeredet ;)
will bei mir nich klappen, da er die auswahl des werkzeugs 
verbietet...möööh!

von Simon K. (simon) Benutzerseite


Lesenswert?


von jay (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.