EE445M RTOS
Taken at the University of Texas Spring 2015
defines.h
Go to the documentation of this file.
1 
11 /* TODO: Doxygenize better */
12 
13 #ifndef __DEFINES__
14 #define __DEFINES__
15 
16 #include <stdint.h>
17 
18 /* os/task defines */
21 typedef void (*task_t)();
22 
23 typedef void (*isr_t)(); /* isr capable of hw_notifying */
24 typedef int32_t frequency_t;
25 
26 /*** Custom data types ***/
27 /* swiss army knife data types */
28 #ifndef null
29 #define null 0x00
30 #endif
31 #ifndef NULL
32 #define NULL 0x00
33 #endif
34 typedef unsigned char uchar;
35 typedef unsigned short ushort;
36 typedef unsigned long ulong;
37 
38 #include <stdbool.h>
39 
40 /* shape.h data types */
41 #define shade_t unsigned char
42 #define mu_fields_t unsigned char
43 #define mu_input_event_t unsigned char
44 
45 /* OLED data types */
46 #define pixel_t unsigned char
47 #define x_pixel_t pixel_t
48 #define y_pixel_t pixel_t
49 
50 /* Graphlib data types */
51 #define y_range_t
52 #define x_range_t
53 
54 /* adc data types */
55 #define adc_t unsigned short
56 #define temperature_t long
57 /*** End custom data types ***/
58 
59 /*** Syntactic sugar ***/
60 #define when(cond) if(true == (cond))
61 #define private
62 #define public
63 
64 /* colorized output through gcc */
65 #define ANSI_COLOR_RED "\x1b[31m"
66 #define ANSI_COLOR_GREEN "\x1b[32m"
67 #define ANSI_COLOR_YELLOW "\x1b[33m"
68 #define ANSI_COLOR_BLUE "\x1b[34m"
69 #define ANSI_COLOR_MAGENTA "\x1b[35m"
70 #define ANSI_COLOR_CYAN "\x1b[36m"
71 #define ANSI_COLOR_RESET "\x1b[0m"
72 
73 /* mnemonics for framebuffer shades */
74 #define FB_SHADE_ERASE ((shade_t) 0)
75 #define FB_SHADE_MIN ((shade_t) 1)
76 #define FB_SHADE_MINOR ((shade_t) 4)
77 #define FB_SHADE_MID ((shade_t) 7)
78 #define FB_SHADE_MUCH ((shade_t) 11)
79 #define FB_SHADE_MAX ((shade_t) 15)
80 /* whoops.. backwards compatability */
81 #define FB_COLOR_ERASE ((shade_t) 0)
82 #define FB_COLOR_MIN ((shade_t) 1)
83 #define FB_COLOR_MINOR ((shade_t) 4)
84 #define FB_COLOR_MID ((shade_t) 7)
85 #define FB_COLOR_MUCH ((shade_t) 11)
86 #define FB_COLOR_MAX ((shade_t) 15)
87 
88 /* custom shading through terminal */
89 #define SHADE_0 '.'
90 #define SHADE_1 '-'
91 #define SHADE_2 '*'
92 #define SHADE_3 '#'
93 #define SHADE_SIZE 4 /* bits necessary to represent different shades */
94 
95 /* would be in framebuffer.h but we had scoping issues... */
96 #define FONT_VALVANO_HEIGHT ((pixel_t) 8)
97 #define FONT_VALVANO_WIDTH ((pixel_t) 5)
98 #define FONT_VALVANO_KERNING ((pixel_t) 2)
99 
100 /* vertical space between lines */
101 #define FONT_VALVANO_LINE_SPACING ((pixel_t) 2)
102 /* vertical space between paragraphs */
103 #define FONT_VALVANO_PARAGRAPH_SPACING (FONT_VALVANO_LINE_SPACING+3)
104 
105 /* OLED screen dimensions */
106 #define OLED_HEIGHT ((pixel_t) 96)
107 #define OLED_WIDTH ((pixel_t) 128)
108 /* synonyms used in different contexts */
109 #define RIT_FB_HEIGHT ((pixel_t) OLED_HEIGHT)
110 #define RIT_FB_WIDTH ((pixel_t) OLED_WIDTH/2)
111 /* synonyms make for happy developers */
112 #define FB_HEIGHT ((pixel_t) 96)
113 #define FB_WIDTH ((pixel_t) 128)
114 
115 /* framebuffer constants */
116 #define FB_CLOCK_SET_TEXT_ROW ((pixel_t) 45)
117 #define FB_CLOCK_SET_DIGITS_ROW ((pixel_t) 55)
118 #define FB_CLOCK_SET_HOUR_COLUMN ((pixel_t) 47)
119 #define FB_CLOCK_SET_COLON_COLUMN ((pixel_t) 61)
120 #define FB_CLOCK_SET_MIN_COLUMN ((pixel_t) 66)
121 
122 #endif
unsigned long ulong
Definition: defines.h:36
void(* isr_t)()
Definition: defines.h:23
void(* task_t)()
Definition: defines.h:21
unsigned short ushort
Definition: defines.h:35
unsigned char uchar
Definition: defines.h:34
int32_t frequency_t
Definition: defines.h:24