The interrupt function is defined by the preprocessor definition #interrupt <interrupt vector number>
and called if the correspoding interrupt is raised.
SQC provides five interrupt types:
IV_TCP /* Network TCP */
IV_UDP /* Network TCP */
IV_RS232 /* UART interface */
IV_GPIO /* GPIO inputs */
IV_TIMER /* Timer interrupts */
Example:
#interrupt IV_TCP // this ist the type of interrupt haendler
void isr_tcp( int port, int sd, char *data, int datalen )
{
/* port - TCP port in this case 4711
/* sd - socket descriptor for response
/* data - pointer to data
/* datalen - the length of received data
/* make something with the data */
printf("Received data : %s , size %d \n", data, datalen);
/* send data back to client */
swrite(sd, data, datalen, 1000);
}
int main
(void)
{
/* open listener on port 4711 */
int server_socket = sopen(TCP,4711);
/* main loop */
while(1){}
sclose(server_socket);
return 0;
}