www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR32 - Interrupterkennung in Fallender Flanke an GPIOs - Grasshopper


Autor: Abderrahim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Linuxer,
ich habe in der letzten Tage rumprobiert, eine Mitutoyo Uhr an den 
Grasshopper anzuschliessen, da in der GH keine EXTINT nach außen 
geroutet sind, habe ich den Pin clk an PA(5) angeschlossen, dann habe 
ich den Interrunpt von dieser Pin als Betriebsmitteln angefordert, wie 
folgt:

/* Set GPIO for mitutoyo_clk as input */
if(gpio_direction_input(mitutoyo_clk))

/* Get IRQ number corresponding to the GPIO number*/
irq = gpio_to_irq(mitutoyo_clk);

/* Request IRQ line for mitutoyo_clk and install a handler */
if(request_irq(irq, mitutoyo_clk_isr, 0, "Mitutoyo",NULL))
{
  printk(KERN_ERR"IRQ request failed\n");
  goto err_req_int;
}

Mein Problem ist, solange ein Low Pegel an der Pin mitutoyo_clk 
vorhanden ist, wird die ISR routine ständich gerufen, ich will aber dass 
dieser Interrupt Flanke gesteuert und nicht Pegel!!
kann mir jemand helfen?

Jeder Hilfreicher Kommentar ist willkommen
Abdo

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da wird dir wohl nichts anderes über bleiben, als ein Negativ-Flanken 
getriggertes Monoflop davor zu setzen.

Autor: Abderrahim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, danke für deine Meldung erstmal,
1-Ich dachte es wäre möglich das einzustellen beim irq anforderung im 
kernel?
wahrscheinlich ist das unter Verwendung von normale gpio's nicht 
möglich, einen Flankenwechsel zu erkennen, es wäre denn man nimmt einen 
EXTINT pins, hab das gestern festgestellt, brauche aber noch einpaar 
dinge zu klären, warum die ISR-routine spät einspringt.
2-wie kann ich einen 8-bit gpio port definieren, für die steuerung von 
einen externen Counter.
ist das mit der kernelfunktion "request_region(...)" getan?

Abderrahim

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. die GPIO-Pins können nur Level-Change keine Flankenerkennung und die 
EXTINT-Pins sind beim Grasshopper nicht herausgeführt.

2. schau dir mal in der setup.c das Beispiel für die LEDs des 
Grasshoppers an.

Autor: Abderrahim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaw, Danke für die Idee, leider komme ich damit nicht weiter, ich habe 
gedacht an eine Resourcenlokalisierung mit hilfe von request_region 
Funktion, und dan einen Byte dahin schicken via outb(), oder einen davon 
lesen via inb(). weiß aber nicht ob das hin haut? hat jemand eine Idee 
wie ich einen 8.bit datenbus mit hilfe von GPIO in einen Module zu 
realisieren ?
Gruß Abderrahim

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.