mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik input capture atmega 644


Autor: Andreas Mossauer (alteleiterplatte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe ein Problem beim input capture interrupt mit einem atmega644. Wenn 
ich folgenden code im Avr Studio 4 simulator debugge :



#include <avr/io.h>
#include <avr/interrupt.h>


ISR( TIMER1_CAPT_vect )
{
  unsigned char temp_00=0;
  temp_00 = ICR1;
}

int main(void)
{
  DDRD = 0x00;

  TCCR1A = 0;
  TCCR1B = (1<<ICES1)  | (1<<CS10);  // Input Capture Edge, kein 
Prescaler
  TCCR1C = 0;

  TIMSK1 = (1<<ICIE1) ;  // Interrupt akivieren, Capture

  sei();

  for(;;)
  {
  unsigned int i;
  i++;
  i = i + PORTB;
  }
}


schaffe ich es nicht durch toggeln von pind.6 in die ISR einzuspringen. 
Vektoriell stimmt die ISR und wenn ich im Simulator PIND.4 toggle wird 
die ISR aufgerufen obwohl der atmega644 den ICP-Pin auf PIND.6 hat.
Wenn wer eine Idee hat, bitte melden.

mfg

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher Simulator (für den ATmega644 müsste es ja auf jeden Fall
den V2 geben, der wäre zu bevorzugen)?  Hast du die Errata zum
Simulator gelesen?

Ich schiebe das mal, das hat mit'm GCC ja offenbar nichts wirklich
zu tun.

p.s.: bitte [ c ]-Markierungen benutzen.

Autor: Andreas Mossauer (alteleiterplatte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort,

Ich benutze die AVR Studio 4.14 build 589 und den V1 Simulator. Auf 
deinen Tipp hin habe ich nun den V2 Simulator verwendet, allerdings 
unterstützt dieser nur den atmega644p. Mit dem V2 funktioniert es nun 
mit Pind.6. Scheint ein bug im Simulator zu sein.?!

Jetzt muss ich nur noch herausfinden wo genau die technischen 
Unterschiede vom 644 und 644p liegen.

mfg

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Mossauer wrote:

> Scheint ein bug im Simulator zu sein.?!

Gut möglich.  Meines Wissens (ich habe kein Windows und daher auch
kein AVR Studio) sind die Bugs des Simulators irgendwo dokumentiert.

> Jetzt muss ich nur noch herausfinden wo genau die technischen
> Unterschiede vom 644 und 644p liegen.

In dieser Richtung (also einen ATmega644P simulieren, aber einen
ATmega644 benutzen) sind sie belanglos.  Außer der Picopower-
Funktionalität (die man extra in Registern aktivieren muss) hat
die P-Version noch die zweite UART, die nicht-P-Version dagegen
nur eine.  Wenn man all das nicht benutzt, müsstens sie binär-
kompatibel sein.  Ansonsten gibt's mit AVR508 noch eine migration
note:

http://www.atmel.com/dyn/resources/prod_documents/...

Autor: Andreas Mossauer (alteleiterplatte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch wrote:

>Gut möglich.  Meines Wissens (ich habe kein Windows und daher auch
>kein AVR Studio) sind die Bugs des Simulators irgendwo dokumentiert.

Mit welchem Simulator arbeitest du? (Gehe mal davon aus das du unter 
linux arbeitest).
Bin mittlerweile auch schon am überlegen auf ein anderes System 
umzusteigen, möchte einfach nur sinnvol AVR mcu´s in c programieren ohne 
mich über compiler oder debugger zu ärgern und stundenlang systemfehler 
zu suchen.

mfg

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Mossauer wrote:

>>Gut möglich.  Meines Wissens (ich habe kein Windows und daher auch
>>kein AVR Studio) sind die Bugs des Simulators irgendwo dokumentiert.

> Mit welchem Simulator arbeitest du? (Gehe mal davon aus das du unter
> linux arbeitest).

Auf Arbeit arbeite ich unter Linux, zu Hause unter FreeBSD.

Simulator ist in der Tat die dünne Stelle der Opensource-Tools.
Ich nehme ganz selten mal simulavr, vor allem zum Simulieren von
Algorithmen.  Ansonsten vor allem live debuggen mit dem JTAG ICE.
Selbst das ist bei den meisten Anwendungen ja schon schwierig
genug (ein einzelner breakpoint kann einem das komplette Timing
über den Haufen werfen), ich kann mir gar nicht vorstellen, dass
man die passende Stimulierung selbst eines guten Simulators
schneller hin bekommen sollte als das Debuggen am lebenden Objekt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.