Forum: Mikrocontroller und Digitale Elektronik Interrupt funktionniert nicht


von Mohi M. (Firma: Student) (mohi34)


Lesenswert?

ich möchte gern Interrupt mit AVR Studio probieren, leider beim Debbugen 
bleibt der Simulator bei der Funktion Sei() hängen.. und wenn ich eine 
Hacke in PD2 tut nicht.. ich kann keine Hacke nirgendwo machen

Wenn ich ein PORTX als Eingang definiere, dann muss er normalerweise zur 
Verfügung stehen..


Hier ist der Code:


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

#include <avr/interrupt.h>


ISR (INT0_vect)
{
  PORTB = ~ PORTB;
}

int main(void)
{


    DDRD  = 0x00;         // use all pins on port D for input

  PORTD = 0xFF;

   DDRB  = 0xff;               // use all pins on PortB for output

  MCUCR |= ( 1<< ISC00)| ( 1 << ISC01);

  GICR |= (1 << INT0);

  sei();


  while (1);

  return 0;
}

Danke am Voraus

von Johannes M. (johnny-m)


Lesenswert?

Simulier das mal Schritt für Schritt. An sich muss das so funktionieren. 
Wenn Du natürlich die Simulation mit "Run" (F5) startest, dann hängt der 
sich nicht beim sei() auf, sondern arbeitet die Endlosschleife ab. Da Du 
aber vermutlich keine Breakpoints gesetzt hast und außerdem beim 
normalen Lauf die I/O-Views nicht aktualisiert werden, während die 
Simulation läuft, musst Du entweder mit "Step Into" (F11) oder mit "Auto 
Step" (Alt+F5) das ganze durchgehen. Und setz mal einen Breakpoint in 
der ISR. Wirst schon sehen, dass es dann klappt.

von Mohi M. (Firma: Student) (mohi34)


Lesenswert?

Hallo
Danke für die schnelle Antwort, ich habe das gemacht wie Sie es gesagt 
hast leider geht nicht ..
ich habe das Programm anders geschrieben, und jetzt geht
Hier ist der Code:


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

#include <avr/interrupt.h>


ISR (INT0_vect)
{
  PORTB = ~ PORTB;
}

int main(void)
{

while (1)

{
    DDRD  = 0x00;         // use all pins on port D for input

  PORTD = 0xFF;

   DDRB  = 0xff;               // use all pins on PortB for output

  MCUCR |= ( 1<< ISC00)| ( 1 << ISC01);

  GICR |= (1 << INT0);

  sei();
}



  return 0;
}

Danke am Voraus

von Christoph M. (Firma: privat) (mauralix)


Lesenswert?

Beitrag "Interrupt einstellen "" Anfänger"""
Ich habe dir doch schon ein funktionstüchtiges Programm geschrieben. Und 
bitte deutsche Formulierungen. Ansonsten schreiben wir hier ja 
vielleicht Software für ausländische Terroristen, die eine 
Bombensteuerung basteln wollen. Copy&Paste ist doch auch nicht so 
schwierig!

von Mohi M. (Firma: Student) (mohi34)


Lesenswert?

was soll ich ja dazu sagen. hätten sie nicht geantwortet, wäre lieber..
und ausserdem sie sind dazu nicht gezwungen..was du geschrieben hast 
zeigt schon deine Niveau.. na ja das ist leider Internet

von Spess53 (Gast)


Lesenswert?

Hi

Bist du eigentlich irgendwie lernresistent? Selbst als notorischer 
Assemblerprogrammierer sehe ich, daß dein Programm Blödsinn ist.
Deine Portinitialisierung gehört vor die while-Schleife. In deinem 
Programm wird zwar in der Interruptroutine der Port invertiert, aber 
beim nächsten Schleifendurchlauf wieder auf die Ausgangswerte 
zurückgesetzt.
Vielleicht solltest du doch den Rat erfahrener Programmierer annehmen.

MfG Spess

P.S. Studierst du wirklich?

von Mohi M. (Firma: Student) (mohi34)


Lesenswert?

1- Was Mikrocontroller angeht, ich bin Anfänger (Seit 3 Wochen ungefähr)
2- Dieses Code gehört mir nicht, ich wollte nur testen.
   Wenn jemand was gegen dieses Code hat, dann bitte schön:
     Beitrag "Interrupt einstellen "" Anfänger"""

  viel spas beim Tauziehen....?????

3- ich hatte nur eine Frage am anfang gehabt, die Antwort war blöde 
Kommentaren!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :

    *- Ansonsten schreiben wir hier ja vielleicht Software für
     ausländische Terroristen, die eine Bombensteuerung basteln
      wollen.

    * Studierst du wirklich?


4- ich bin zwar auslander, studiere an der Uni Düsseldorf und manschmal 
ich achte nicht drauf was ich  schreibe, aber das gibt keinem Recht mich 
oder allgemein Auslander zu beleidigen.

und Bitte der Rat erfahrener Programmierer in der Programmierung nicht 
in was 
anders.......???????????????????????????????????????????????????????

???????????????????????????????????????????????????????
Wo sind die Administratoren????????????????????????????
???????????????????????????????????????????????????????

von Magnus Müller (Gast)


Lesenswert?

> 4- ich bin zwar auslander, studiere an der Uni Düsseldorf und manschmal
> ich achte nicht drauf was ich  schreibe, aber das gibt keinem Recht mich
> oder allgemein Auslander zu beleidigen.

Ich denke nicht, dass man dich hier als Ausländer diskriminieren will, 
aber wenn du schon selbst schreibst:

> ich achte nicht drauf was ich  schreibe

...solltest du dir mal gedanken machen, ob du nicht doch lieber mal 
darauf achten solltest was du schreibst.


> ???????????????????????????????????????????????????????
> Wo sind die Administratoren????????????????????????????
> ???????????????????????????????????????????????????????

Die sind schon da, aber sie sind nun mal keine Kindermädchen... (sorry)

Gruß,
Magnetus

von Uhu U. (uhu)


Lesenswert?

Mohi Mohi wrote:
> was soll ich ja dazu sagen. hätten sie nicht geantwortet, wäre lieber..
> und ausserdem sie sind dazu nicht gezwungen..was du geschrieben hast
> zeigt schon deine Niveau.. na ja das ist leider Internet

Ja, was soll man zu so viel Borniertheit sagen... das stellt ja den 
dümmsten Troll noch in Schatten...

von Mohi M. (Firma: Student) (mohi34)


Lesenswert?

ich bin hier in einer Hoffe von..................... gelandet.

von Rahul D. (rahul)


Lesenswert?

>ich bin hier in einer Hoffe von..................... gelandet.

Dann solltest du die Uni wechseln. ;)

Vor allem solltest du das Datenblatt deines Controllers studieren 
(=lesen + verstehen) und dir mal die Tutorien angucken.
Den Code anderer einfach stur zu übernehmen, hilft dir bestimmt nicht.

von Mohi M. (Firma: Student) (mohi34)


Lesenswert?

hallo
Danke für den Hinweis, habe ich auch ..und immer noch dabei..
und Sorry falls ich jemand verletzt habe .. ich versuche nur Parallel 
die einfache Programme zu testen, und .. zu verstehen..

Anscheinend ihr habt genug Lust und Kraft Leute zu beleidigen und daran 
zu stehen und sogar weiterzumachen.

ENTSCHULDIGUNG..

von mohi34 (Gast)


Lesenswert?

Entschuldigung " Johannes M."  "Christoph Maurer"  "Magnus Müller" 
"Rahul Der trollige".

ich bitte euch meine Entschuldigung anzunehmen.. ihr seid wirklich sehr 
behilflich... das gebe ich zu......und versprochen keine Fragen mehr :-)

von Uhu U. (uhu)


Lesenswert?

Mohi, laß doch diesen Unsinn. Machs wie ich: Blöde Beiträge kann man 
einfach ignorieren.

Wenn man das allerdings mit denen auch tut, die konstruktiv und ernst 
gemeint sind, dann wird man - nicht nur hier - wenig Freude haben.

Konzentriere dich einfach auf das Problem, stelle klare Fragen und nimm 
ernstgemeinte Tipps ernst, dann wird du sehen, daß du schnell weiter 
kommst.

von Gast (Gast)


Lesenswert?

aach kommt Leute der Junge hatte es nicht so gemeint Auslander zu sein 
ist manschmal vom Vorteil :-))...mohi34 lass es du bist willkommen und 
wenn du Fragen hast .. du kannst mit mir rechnen

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Man man is das nen rumgeflame hier... ;)

von Gast (Gast)


Lesenswert?

ooooohhhhhhhhhhhhhhhh Mohi Willkommen in "www.mikrocontroller.net" 
selbst
erfahrene Programmierer brauchen ab und zu mal jemand zum ...
opst sorry erfahrene Programmierer

von Christoph M. (Firma: privat) (mauralix)


Lesenswert?

Ich wollte hier niemanden aus Ausländer beschimpfen. Ich habe mich nur 
ein wenig gewundert. Beitrag "Interrupt einstellen "" Anfänger""" In 
diesem Thread habe ich ein lauffähiges Programm für externe Interrupts 
geschrieben, welches dankend angenommen wurde. Dann hat mohi einen neuen 
Thread erstellt wo er dieses Programm kaputt gemacht hat und stellt 
wieder die gleiche Frage. Da kann man wohl noch kaum helfen. Ein 
bisschen mitdenken muss man schon. Ich hatte schon fast schlechtes 
Gewissen, da ich hier gratis Programme erstelle. Eines Tages fragt wer 
um einen Atombombenbauplan....

von Mohi M. (Firma: Student) (mohi34)


Lesenswert?

Sorry christoph,
Wie gesagt ich bin ein Anfänger.. und durch Fehler lernt man!
Schade, dass durch nur eine einfache Frage zu viele Missverständnisse...
und das ist ganz normal Viele Missverständnisse und sogar Konflikte 
entstehen, weil nicht alle über dasselbe Wissen verfügen.

nochmal sorry :-)

von Christoph M. (Firma: privat) (mauralix)


Lesenswert?

Geht klar, aber in Zukunft besser copy&paste richtig machen. Geht ganz 
einfach (Strg+C(Kopieren),Strg+V(Einfügen)), zumindest unter meinem 
Xp-System. ;-)

Natürlich sollst du dann dein Programm entsprechend deinen Anforderungen 
anpassen, aber das Grundgerüst kannst du ruhig übernehmen.

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.