Interrupt med EtherNut

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
karlstedt
EF Sponsor
Inlägg: 966
Blev medlem: 14 oktober 2003, 16:55:23
Ort: Lund
Kontakt:

Interrupt med EtherNut

Inlägg av karlstedt »

Någon som har erfarenhet av EhterNut och hur man fångar upp interrupt mha operativsystemet?
Det går ju inte att deklarera interrupten som "vanligt" i C. Jag skulle vilja ha igång typ "SIGNAL(SIG_UART1_RECV)"

Har tittat och funderat en hel del över EtherNut's API men inte mött några framgångar.

aja.. vi börjar sådär...
gille
Inlägg: 69
Blev medlem: 28 november 2004, 18:06:09
Ort: Stockholm
Kontakt:

Inlägg av gille »

http://www.ethernut.de/api/group__xgInterrupt.html

Sen kan har väl NutOS en bra seriedriver?
Användarvisningsbild
karlstedt
EF Sponsor
Inlägg: 966
Blev medlem: 14 oktober 2003, 16:55:23
Ort: Lund
Kontakt:

Inlägg av karlstedt »

ja, den där sidan har jag nött igenom några gånger... tycker inte att det fungerar speciellt bra och jag är övertygad om att jag gör fel men många av funktionerna går ju inte att anropa.

Du säger att NutOs har en bra seriedriver? Har du andra förslag på hur jag ska detektera inkommande data på UART så mottages de gärna.
gille
Inlägg: 69
Blev medlem: 28 november 2004, 18:06:09
Ort: Stockholm
Kontakt:

Inlägg av gille »

Oj, det var mer en fråga än ett påstående.

Men du kan väl registrera ett interuppt med:
void myHandler(void) { do_stuff(); }
....
NutRegisterIrqHandler (&sig_UART0_RECV, myHandler(), NULL);
NutIrqEnable (&sig_UART0_RECV);

?
Användarvisningsbild
karlstedt
EF Sponsor
Inlägg: 966
Blev medlem: 14 oktober 2003, 16:55:23
Ort: Lund
Kontakt:

Inlägg av karlstedt »

mm, sådär har jag harvat på lite..

detta går ej:

Kod: Markera allt

NutRegisterIrqHandler (&sig_UART0_RECV, myHandler(), NULL); 

men detta fungerar:

Kod: Markera allt

NutRegisterIrqHandler(&sig_UART0_RECV, (void*)myHandler, NULL);
sedan ger

Kod: Markera allt

 NutIrqEnable (&sig_UART0_RECV);
detta felet:

Kod: Markera allt

main.c:181: warning: implicit declaration of function `NutIrqEnable'
i kompilatorn.. kör WinAvr

Är det nåt mer som måste inkluderas för just detta funktionsanrop?

tack för hjälpen förresten.
gille
Inlägg: 69
Blev medlem: 28 november 2004, 18:06:09
Ort: Stockholm
Kontakt:

Inlägg av gille »

Oj jag klippte lite fel.

Det blir lätt fel när man programmerar i phpBB...

så bör det se ut:

Kod: Markera allt

 NutRegisterIrqHandler (&sig_UART0_RECV, myHandler, NULL);
Inget mer än irqreg.h tycks behövas enligt mig.

Men jag har varken ethernut eller byggmiljö tillgänglig på jobbet.
Användarvisningsbild
karlstedt
EF Sponsor
Inlägg: 966
Blev medlem: 14 oktober 2003, 16:55:23
Ort: Lund
Kontakt:

Inlägg av karlstedt »

okej.. men är det så att NutIrqEnable() inte gör annat än att sätter bit RXCIE i UCSR0B så bordet det vara okej ändå för att när jag läser in UCSR0B så är det registret 0b11011000 så både 'RX Complete Interrupt Enable' och 'TX Complete Interrupt Enable' är ju satta.

då kanske det fungerar bara att jag inte märker att myHandler() körs...
måste försäkra mig om detta innan jag yrar vidare... har dåligt med utrustning där jag sitter just nu...
tack igen
Skriv svar