U.B.O.R
The [U]seless [B]ox [O]rganizing [R]obot. A FreeRTOS study project written in C which implements a multitasked control unit for a belt conveyor system with robotic sorting arms.
Data Structures | Macros | Functions | Variables
bcs.c File Reference
#include "display.h"
#include <FreeRTOS.h>
#include <stdio.h>
#include <task.h>
#include <queue.h>
#include <semphr.h>
#include <stdbool.h>
#include <string.h>
#include "ucan.h"
#include "bcs.h"
Include dependency graph for bcs.c:

Go to the source code of this file.

Data Structures

struct  message_t
 BCS can message structure. More...
 

Macros

#define STACKSIZE_TASK   256
 Stack size of all bcs tasks. More...
 
#define PRIORITY_TASK   2
 Priority of all bcs tasks. More...
 
#define MAX_BLOCK_COUNT   3
 Number of blocks to work with. Must be between 2 and 4. More...
 
#define SWITCH   ((volatile unsigned char*)(0x6C000400))
 

Functions

struct __attribute__ ((__packed__))
 Status message received by belt conveyer system. More...
 
void bcs_prepare_drop (enum belt_select belt)
 Prepares a block drop operation to a specific belt global. More...
 
void bcs_signal_dropped (enum belt_select belt)
 Signal that a block has been dropped on a belt global. More...
 
void bcs_signal_band_free (enum belt_select belt)
 Signal that a block has been removed from a belt and the belt is free again global. More...
 
int8_t bcs_grab (enum belt_select belt)
 Instructs the system that we want to grab a block from the bcs global. More...
 
void bcs_init ()
 Initializes the belt conveyer system and starts the belt tasks global. More...
 

Variables

 status_t