Hallo Segger,
nachdem ich mit embOS gestartet habe, habe ich ein Problem mit einer Interrupt-Routine für meine UART Kommunikation.
Vor dem Auslösen des von mir gesetzten RXNE_Interrupts laufen alle Tasks nach Priorität ab und wenn ich ein Signal sende springt das Programm in die ISR und arbeitet den Code ab.
Hier wird einfach nur ein Buffer mit den empfangenen Daten gefüllt, aber nach der ISR springt das Programm wieder in die ISR ohne eine Task auszuführen.
Vielleicht kann mir ja jmd. helfen.
Display All
nachdem ich mit embOS gestartet habe, habe ich ein Problem mit einer Interrupt-Routine für meine UART Kommunikation.
Vor dem Auslösen des von mir gesetzten RXNE_Interrupts laufen alle Tasks nach Priorität ab und wenn ich ein Signal sende springt das Programm in die ISR und arbeitet den Code ab.
Hier wird einfach nur ein Buffer mit den empfangenen Daten gefüllt, aber nach der ISR springt das Programm wieder in die ISR ohne eine Task auszuführen.
Vielleicht kann mir ja jmd. helfen.
Source Code
- void USART2_IRQHandler(void)
- {
- OS_INT_Call(_USART_RXNE_IRQ_Handler);
- }
- void _USART_RXNE_IRQ_Handler(void)
- {
- if(USART_GetITStatus(USART2,USART_IT_RXNE) == SET)
- {
- if (buffer[zaehler]== 0)
- {
- buffer[zaehler] = USART_ReceiveData(USART2);
- }
- if (buffer[zaehler]== 0x0D)
- {
- zaehler = 0;
- }
- else
- { zaehler++; }
- }
- }