AVR32 - Interrupterkennung in Fallender Flanke an GPIOs - Grasshopper

Gast #1111872
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
Gast #1115107
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
Gast #1138136
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren