Skip to content
Snippets Groups Projects
Commit 908acb55 authored by Annika's avatar Annika
Browse files

Code für Displayausgabe in Task4 (Display)

komischer Commit vorher war der Versuch der Displayanzeige, die noch nicht 100% funktioniert
parent 354fdff8
Branches
No related tags found
No related merge requests found
......@@ -81,6 +81,13 @@ const osThreadAttr_t Task3_attributes = {
.stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityNormal,
};
/* Definitions for Task4 */
osThreadId_t Task4Handle;
const osThreadAttr_t Task4_attributes = {
.name = "Task4",
.stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityLow,
};
/* Definitions for toLEDMatrix */
osMessageQueueId_t toLEDMatrixHandle;
const osMessageQueueAttr_t toLEDMatrix_attributes = {
......@@ -144,6 +151,7 @@ static void MX_TIM2_Init(void);
void Levels(void *argument);
void Task02(void *argument);
void Validate(void *argument);
void Display(void *argument);
/* USER CODE BEGIN PFP */
extern TIM_HandleTypeDef htim7;
......@@ -258,6 +266,9 @@ int main(void)
/* creation of Task3 */
Task3Handle = osThreadNew(Validate, NULL, &Task3_attributes);
/* creation of Task4 */
Task4Handle = osThreadNew(Display, NULL, &Task4_attributes);
/* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */
// osThreadTerminate(Task1Handle);
......@@ -934,7 +945,7 @@ void Validate(void *argument)
}
default:
{
xQueueSend(toDisplayQueueHandle, "Dead", (portTickType)1); // Punkte ans Display senden
xQueueSend(toDisplayQueueHandle, 0, (portTickType)1); // Punkte ans Display senden
}
}
}
......@@ -943,6 +954,41 @@ void Validate(void *argument)
/* USER CODE END Validate */
}
/* USER CODE BEGIN Header_Display */
/**
* @brief Function implementing the Task04 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_Display */
void Display(void *argument)
{
/* USER CODE BEGIN Display */
/* Infinite loop */
for(;;)
{
int rec = 1; // Initialisierung mit 1 damit am Anfang nicht die Todesnachricht ausgegeben wird
int points = 0;
char punkte[] = "1000";
if(xQueueReceive(toDisplayQueueHandle, &rec , (portTickType)0) == true)
{
points += rec;
punkte[0] = points / 100;
punkte[1] = (points %100) / 10;
punkte[2] = points % 10;
}
LCD_init();
LCD_setCursor(0,0);
LCD_print(punkte);
if(rec == 0)
{
LCD_print("You are dead");
}
}
/* USER CODE END Display */
}
/**
* @brief Period elapsed callback in non blocking mode
* @note This function is called when TIM7 interrupt took place, inside
......@@ -975,6 +1021,7 @@ void Error_Handler(void)
__disable_irq();
while (1)
{
}
/* USER CODE END Error_Handler_Debug */
}
......
......@@ -15,7 +15,7 @@ FREERTOS.BinarySemaphores01=mySem,Dynamic,NULL;SemBtn1,Dynamic,NULL;SemBtn2,Dyna
FREERTOS.FootprintOK=true
FREERTOS.IPParameters=Tasks01,BinarySemaphores01,FootprintOK,configUSE_PREEMPTION,configUSE_OS2_TIMER,Queues01
FREERTOS.Queues01=toLEDMatrix,16,matrix_s,0,Dynamic,NULL,NULL;fromLEDMatrix,16,matrix_s,0,Dynamic,NULL,NULL;toDisplayQueue,16,uint16_t,0,Dynamic,NULL,NULL
FREERTOS.Tasks01=Task1,24,128,Levels,Default,NULL,Dynamic,NULL,NULL;Task2,24,128,Task02,Default,NULL,Dynamic,NULL,NULL;Task3,24,128,Validate,Default,NULL,Dynamic,NULL,NULL
FREERTOS.Tasks01=Task1,24,128,Levels,Default,NULL,Dynamic,NULL,NULL;Task2,24,128,Task02,Default,NULL,Dynamic,NULL,NULL;Task3,24,128,Validate,Default,NULL,Dynamic,NULL,NULL;Task4,8,128,Display,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configUSE_OS2_TIMER=1
FREERTOS.configUSE_PREEMPTION=0
File.Version=6
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment