Schnelle Abfrage

Gast #162251
Lesenswert?
• ▲
▼
Hallo!
Ich muss sehr rasch eine Signaländerung reagieren.
Leider habe ich weder Timer (Mit PWM belegt) noch externe Interrupts
mehr frei, aber noch Rechenzeit übrig.
Der ATMega8 läuft mit 8Mhz.

Wie viele Takte benötigt folgender Code? D.H. wie lange dauert es
zwischen 2 Abfragen?

  while (!(PINC & (1<<PINC2)) && (i < 65535)) {  //Solange PinC LOW ist

    i++;
    // asm volatile ("nop");
  }
Gast #162252
Lesenswert?
• ▲
▼
Dürfte vom Compiler abhängen... Kannst Du vielleicht einen Assembler -
Zwischencode erzeugen lassen? Oder besser die ganze Schleife in ASM
programmieren? Dann bekommst Du es leicht heraus...
Gast #162254
Lesenswert?
• ▲
▼
Wie kann ich mir das von GCC erstellte Listing in verständlicher Form
ansehen?
Wäre es nicht besser die Schleife gleich in Inline - Assembler zu
schreiben? Leider habe ich damit aber keine Erfahrungen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren