mikrocontroller.net

Forum: Compiler & IDEs mega32 -> mega8: Auswertung des ICP geht nichtmehr


Autor: Claas R. (cascade)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich bin noch recht neu mit AVR Programmierung aber hab schon quasi das 
Hello-World der AVR-Welt umgesetzt (siehe angehaengtes Bild).

Nun wollte ich von dem Mega32 aus der Bastelkiste auf einen Mega8L 
umziehen, eigentlich ja nicht das Problem dachte ich.

Vorher hatte ich an PORTC die 8LEDs haengen und einen HALL-Sensor am ICP 
vom Mega32, also PD6.

Nun wollte ich die LEDs an PORTD haengen und den HALL an PB0.

Dafuer muesste ich ja >nur< die Ausgaben der LED-Stellungen aendern, 
denn Init vom Capture Pin solle ja gleich bleiben.

Jedoch kann ich den PB0 so oft im Sim rumklicken wie ich will, ich lande 
nie in meinem Interrupt-Handler :(

Hier mal das wichtige bevor man sich in meinem verworrenen Code 
verlaeuft:
SIGNAL(SIG_INPUT_CAPTURE1)
{
  //[lots of useless code]
  TCNT1 = 0;              // timer reset, das sollte man sehen im Sim
  //[a lot more of useless code]
}

int main(void)
{
    sei();                // Interrupt aktivieren
    TCCR1B = (1<<ICES1)  | (1<<CS10);   // Input Capture Edge, kein PreScale, kein CTC Mode
    TIMSK = (1<<TICIE1) | (1<<TOIE1);    // Interrupts akivieren, Capture + Overflow

   DDRB = 0x00;            // Set up PortB (MEGA8) da PB0 der ICP ist einfach alle auf EINGANG


    while(1)
    {
      //[code galore]
    }
}

Wie gesagt, mitm Mega32 laeuft sowohl aufm AVR als auch im Sim. Da kann 
ich den PD6 togglen und sehe das der Timer dann wunderbar auf 0 gesetzt 
wird. Mit Mega8 bekomme ich das nicht hin.
Ich les seit 3Std hier im forum und ueberall da wo google mich hinwirft 
aber ich bekomms nicht hin.

Waere super falls jemand dazu ne Idee hat.

Autor: risu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

außer dass "sei();" am Ende der vollständigen I/O+SFR-Initialisierung 
stehen sollte (in Deinem Beispiel also direkt vor dem "while(1)"), sehe 
ich keine Probleme mit Deinem Code. Mit der Dezember 2007 WinAVR Version 
("SIGNAL" dafür natürlich durch "ISR" ersetzt!) und AVRStudio v.4.14 
lässt sich Dein Code auch korrekt simulieren.

Gruß
 risu

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast den Overflow-Interrupt freigeschaltet, aber keine ISR dafür. 
Wahrscheinlich kommt jetzt:
"Doch, ich habe eine Overflow-ISR, nur nicht gepostet."
In dem Fall liegt der Fehler auch irgendwo im "nicht gepostet", denn der 
Codeschnipsel oben, ergänzt durch eine leere Overflow-ISR, funktioniert 
im Simulator einwandfrei.

Autor: Claas R. (cascade)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morgen Leute,

vielen Dank. Ich hab den Fehler jetzt gefunden, oh Gott ist das 
peinlich...

Ich hab zwr im Project Config auf Atmega8 umgestellt aber der Simualtor 
hatte unten noch Mega8 stehen. Dann laeuft der ganze kram natuerlich 
auch nicht so wie man will. Ich hab eben einfach neues Projekt und den 
Code eingefuegt und es laeuft.

Werft Steine, es ist peinlich :)

Aber danke, ich lad nebenbei mal die neue AVR-Studio (man ist der Server 
lahm) evtl hab ich dann auch aktuelleren Code irgendwann was SIGNAL vs 
ISR angeht etc...

MFG
Claas

Autor: risu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Claas,

>... ich lad nebenbei mal die neue AVR-Studio (man ist der Server
> lahm) evtl hab ich dann auch aktuelleren Code irgendwann was SIGNAL
> vs ISR angeht etc...

ISR vs. SIGNAL ist eine Frage der WinAVR Version, nicht der AVRStudio 
Version: http://sourceforge.net/project/showfiles.php?group_id=68108

Gruß
 risu

Autor: Claas R. (cascade)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich hab nun neue WinAVR Version genommen und es laeuft mit -Wall alles 
durch... und drehen tut sich der spass auch :)

Unter http://forum.mikrokopter.de/topic-5794.html gibts Bilder, Videos 
und den Source...

Vielen dank fuer die Hilfe nochmal, haettet ihr nicht gesagt das geht 
bei euch haette ich ewig den simulator angeguckt und mich geaergert...

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Claas R. (cascade)

>Unter http://forum.mikrokopter.de/topic-5794.html gibts Bilder, Videos

Das ist ja wirklich eine Propeller Uhr ;-)

Schick.

MFG
Falk

Autor: risu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Claas,

danke für die Rückmeldung: Nett, dass Du uns das Ergebnis mitgeteilt 
hast und der Thread nicht einfach im Sande verläuft.

Weiter viel Spaß und Erfolg!

Viele Grüße
         risu

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.