www.mikrocontroller.net

Forum: Compiler & IDEs Problem mit INT1


Autor: Wolfgang Gigerl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich habe da ein Problem: soweit ich weiß sollte das unten angeführte
programm, sobald die Spannung von 0 auf 5 Volt wechselt, die Leds
nacheinander am portC eischalten. Die Leds werden, wenn ich ein
rechtecksignal anlege, aber immer nur bei der FALLENDEN flanke
geschalten!
WARUM?


#include <io.h>
#include <interrupt.h>
#include <sig-avr.h>
#include <string.h>

unsigned char uiLed=0;
void initialisierung(void);
SIGNAL(SIG_INTERRUPT1)

{
     sbi(PORTC,uiLed);
     uiLed++;
}

int main(void)
{
  initialisierung();
  while(1)
  {

  }
}
void initialisierung(void)
{
  sei();
  outp(0x00,   DDRB);          /*  Port b als Eingang */
  outp(0xff,   DDRC);          /*  Port c als Ausgang */
  cbi(DDRD,  3);                  // PD3 als Eingang
         sbi(PORTD, 3);           // pullup on PD3
  outp((1<<INT1), GIMSK);         //INT1 enable
  outp((1<<ISC10), MCUCR);
  outp((1<<ISC11), MCUCR);        // INT1 auf STEIGENDE flanke
          //einstellen
}

Autor: Berndt Brandes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
outp((1<<ISC10), MCUCR); // Any logical change on INT1 generates an
interrupt request.
  outp((1<<ISC11), MCUCR); // The falling edge of INT1 generates an
interrupt request.

Kommentare aus ATMEGA8 Datenblatt. Die 2. Ausgabeanweisung setzt bit
ISC10 wieder auf 0!
Besser mit
MCUCR = 1<<ISC10 | 1<<ISC11; // setzt beide Bits.

/Berndt

Autor: Wolfgang Gigerl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
THNX, habe nicht beachtet, dass die zweite Anweisung die erste wieder
auf 0 setzt!!!

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.