FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [July 2014 Threads] PIC24 and INTERRUPT HANDLERPosted by fabrice48 on July 15, 2014 Hello,
i have a doubt about the interrupt handler on pic24 :
the official document explain this,
Interrupt can be written in C exactly as described in the compiler.
Then it was discussed about TWO interrupt handler, C method and ASM method.
readind the manual several time but i don't understand if i can use C or if i have to use ASM ?
here an example about the Scondary UART Rx Interrupt.
Can i use this code ? is it correct ?
typedef struct
{
unsigned char screenpos;
char* screenmess;
} lcd_data;
lcddata infoserie;
void attribute((interrupt, noautopsv)) U2RXInterrupt(void)
{
IFS1bits.U2RXIF = 0;
while( DataRdyUART2())
{
message[0] = ReadUART2();
WriteUART2( message[0] +1 );
infoserie.screenmess = message;
infoserie.screenpos = 10;
xQueueSendToBackFromISR(xQueuelcd, &info_serie,0);
}
}
thank you for help.
fabrice
PIC24 and INTERRUPT HANDLERPosted by davedoors on July 15, 2014 There are two interrupt handlers defined in the PIC24 demo for you to copy (in this file http://sourceforge.net/p/freertos/code/HEAD/tree/trunk/FreeRTOS/Demo/PIC24_MPLAB/serial/serial.c) and this is what the documentation page for the PIC24 port says:
"Interrupt service routines that cannot cause a context switch have no special requirements and can be written as per the compiler documentation.
Interrupt service routines that can cause a context switch must execute with priority portKERNELINTERRUPTPRIORITY, and only call taskYIELD() at the very end of the service routine after the interrupt source has been cleared. See the file serial.c included in the demo application for an example."
no mention of assembly code, I don't know what it is you are reading.
PIC24 and INTERRUPT HANDLERPosted by fabrice48 on July 15, 2014 Hello Dave,
my document is the one bought on official freertos website, it's page 89.
as i said, i just have a 'doubt'
so if the interrupt does not cause a context switch AND if it canoot be itself interrupted i can use the C handler.
i just began with FreeRtos.
the assembly kind is discussed a the very end of this page.
my document is the one for PIC32.
thank you
PIC24 and INTERRUPT HANDLERPosted by davedoors on July 15, 2014 Each chip/compiler port necessarily has a different way of doing it because of the constraints of the architecture and the compiler syntax.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|