/********************************************************************* | |
* SEGGER Microcontroller GmbH * | |
* Solutions for real time microcontroller applications * | |
********************************************************************** | |
* * | |
* (c) 1995 - 2018 SEGGER Microcontroller GmbH * | |
* * | |
* www.segger.com Support: support@segger.com * | |
* * | |
********************************************************************** | |
--------- END-OF-HEADER -------------------------------------------- | |
File : Main_RTT_MenuApp.c | |
Purpose : Sample application to demonstrate RTT bi-directional functionality | |
*/ | |
#define MAIN_C | |
#include <stdio.h> | |
#include "SEGGER_RTT.h" | |
volatile int _Cnt; | |
volatile int _Delay; | |
/********************************************************************* | |
* | |
* main | |
*/ | |
void main(void) { | |
int r; | |
int CancelOp; | |
do { | |
_Cnt = 0; | |
SEGGER_RTT_WriteString(0, "SEGGER Real-Time-Terminal Sample\r\n"); | |
SEGGER_RTT_WriteString(0, "Press <1> to continue in blocking mode (Application waits if necessary, no data lost)\r\n"); | |
SEGGER_RTT_WriteString(0, "Press <2> to continue in non-blocking mode (Application does not wait, data lost if fifo full)\r\n"); | |
do { | |
r = SEGGER_RTT_WaitKey(); | |
} while ((r != '1') && (r != '2')); | |
if (r == '1') { | |
SEGGER_RTT_WriteString(0, "\r\nSelected <1>. Configuring RTT and starting...\r\n"); | |
SEGGER_RTT_ConfigUpBuffer(0, NULL, NULL, 0, SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL); | |
} else { | |
SEGGER_RTT_WriteString(0, "\r\nSelected <2>. Configuring RTT and starting...\r\n"); | |
SEGGER_RTT_ConfigUpBuffer(0, NULL, NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP); | |
} | |
CancelOp = 0; | |
do { | |
//for (_Delay = 0; _Delay < 10000; _Delay++); | |
SEGGER_RTT_printf(0, "Count: %d. Press <Space> to get back to menu.\r\n", _Cnt++); | |
r = SEGGER_RTT_HasKey(); | |
if (r) { | |
CancelOp = (SEGGER_RTT_GetKey() == ' ') ? 1 : 0; | |
} | |
// | |
// Check if user selected to cancel the current operation | |
// | |
if (CancelOp) { | |
SEGGER_RTT_WriteString(0, "Operation cancelled, going back to menu...\r\n"); | |
break; | |
} | |
} while (1); | |
SEGGER_RTT_GetKey(); | |
SEGGER_RTT_WriteString(0, "\r\n"); | |
} while (1); | |
} | |
/*************************** End of file ****************************/ |