Add documentation
This commit is contained in:
parent
62853bcedc
commit
c6063e28a4
47 changed files with 1011 additions and 148750 deletions
BIN
docs/BOM.csv
Normal file
BIN
docs/BOM.csv
Normal file
Binary file not shown.
|
BIN
docs/SchmelczerAndras_HF.pdf
Normal file
BIN
docs/SchmelczerAndras_HF.pdf
Normal file
Binary file not shown.
BIN
docs/architecture.pdf
Normal file
BIN
docs/architecture.pdf
Normal file
Binary file not shown.
BIN
docs/documentation.pdf
Normal file
BIN
docs/documentation.pdf
Normal file
Binary file not shown.
BIN
docs/dokumentáció.docx
Normal file
BIN
docs/dokumentáció.docx
Normal file
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 988 KiB |
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
3423
docs/schematic.pdf
Normal file
3423
docs/schematic.pdf
Normal file
File diff suppressed because it is too large
Load diff
BIN
docs/software_documentation.pdf
Normal file
BIN
docs/software_documentation.pdf
Normal file
Binary file not shown.
|
|
@ -9,12 +9,12 @@
|
||||||
|
|
||||||
|
|
||||||
static uint8_t const configuration[] PROGMEM = {
|
static uint8_t const configuration[] PROGMEM = {
|
||||||
0xD5, 0xF0, // set clock frequency
|
0xD5, 0xF0, /// set clock frequency
|
||||||
0x8D, 0x14, // enable charge pump
|
0x8D, 0x14, /// enable charge pump
|
||||||
0x20, 0x00, // horizontal addressing mode
|
0x20, 0x00, /// horizontal addressing mode
|
||||||
0xD6, 0x01, // 2 times vertical zoom
|
0xD6, 0x01, /// 2 times vertical zoom
|
||||||
0x22, 0x00, 0x03, // only draw to the top half of the screen
|
0x22, 0x00, 0x03, /// only draw to the top half of the screen
|
||||||
0xAF // display on
|
0xAF /// display on
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
|
|
@ -43,8 +43,8 @@ void initializeDisplay(DrawFunction drawEverything) {
|
||||||
setOutputPin(DISPLAY_RESET_OUTPUT_PIN, false);
|
setOutputPin(DISPLAY_RESET_OUTPUT_PIN, false);
|
||||||
for (volatile uint8_t i = 0; i != 255; i++)
|
for (volatile uint8_t i = 0; i != 255; i++)
|
||||||
;
|
;
|
||||||
// some time has to elapse before the next line gets called,
|
/// some time has to elapse before the next line gets called,
|
||||||
// otherwise the display wont turn on
|
/// otherwise the display wont turn on
|
||||||
setOutputPin(DISPLAY_RESET_OUTPUT_PIN, true);
|
setOutputPin(DISPLAY_RESET_OUTPUT_PIN, true);
|
||||||
|
|
||||||
for (uint8_t i = 0; i < sizeof(configuration); i++) {
|
for (uint8_t i = 0; i < sizeof(configuration); i++) {
|
||||||
|
|
|
||||||
|
|
@ -7,51 +7,51 @@
|
||||||
#include "../../util/rectangle/rectangle.h"
|
#include "../../util/rectangle/rectangle.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/**
|
||||||
SPI driver for D096-12864
|
SPI driver for D096-12864
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DISPLAY_RESET_OUTPUT_PIN PB0
|
#define DISPLAY_RESET_OUTPUT_PIN PB0
|
||||||
#define DISPLAY_DC_OUTPUT_PIN PB4
|
#define DISPLAY_DC_OUTPUT_PIN PB4
|
||||||
|
|
||||||
// A two-times downscaling is used for greater performance
|
/// A two-times downscaling is used for greater performance
|
||||||
#define DISPLAY_WIDTH_IN_PIXELS 64
|
#define DISPLAY_WIDTH_IN_PIXELS 64
|
||||||
#define DISPLAY_HEIGHT_IN_PIXELS 32
|
#define DISPLAY_HEIGHT_IN_PIXELS 32
|
||||||
|
|
||||||
// To easily access the window size
|
/// To easily access the window size
|
||||||
#define WINDOW ((Rectangle){(Vec2){0, 0}, (Vec2){DISPLAY_WIDTH_IN_PIXELS, DISPLAY_HEIGHT_IN_PIXELS}})
|
#define WINDOW ((Rectangle){(Vec2){0, 0}, (Vec2){DISPLAY_WIDTH_IN_PIXELS, DISPLAY_HEIGHT_IN_PIXELS}})
|
||||||
|
|
||||||
// To conserve RAM, drawing is done in chunks of DEFAULT_COMPOSITING_WINDOW size
|
/// To conserve RAM, drawing is done in chunks of DEFAULT_COMPOSITING_WINDOW size
|
||||||
// instead of buffering the whole display and writing it out at once
|
/// instead of buffering the whole display and writing it out at once
|
||||||
#define DEFAULT_COMPOSITING_WINDOW ((Rectangle){(Vec2){0, 0}, (Vec2){DISPLAY_WIDTH_IN_PIXELS, 8}})
|
#define DEFAULT_COMPOSITING_WINDOW ((Rectangle){(Vec2){0, 0}, (Vec2){DISPLAY_WIDTH_IN_PIXELS, 8}})
|
||||||
|
|
||||||
typedef void (*DrawFunction)(Rectangle);
|
typedef void (*DrawFunction)(Rectangle);
|
||||||
|
|
||||||
// Call DrawFunction n times after a call to drawFrame has been made
|
/// Call DrawFunction n times after a call to drawFrame has been made
|
||||||
void initializeDisplay(DrawFunction drawEverything);
|
void initializeDisplay(DrawFunction drawEverything);
|
||||||
|
|
||||||
// Set a the brightness of the display
|
/// Set a the brightness of the display
|
||||||
// Value can be any number between 0 and 255.
|
/// Value can be any number between 0 and 255.
|
||||||
void setDisplayContrast(uint8_t value);
|
void setDisplayContrast(uint8_t value);
|
||||||
|
|
||||||
// To conserve program memory, pixel based intersection test
|
/// To conserve program memory, pixel based intersection test
|
||||||
// is implemented here.
|
/// is implemented here.
|
||||||
// Calling draw functions after calling startIntersectionTest
|
/// Calling draw functions after calling startIntersectionTest
|
||||||
// will set a wasIntersection bit appropriately.
|
/// will set a wasIntersection bit appropriately.
|
||||||
|
|
||||||
// Clear buffer and wasIntersection bit
|
/// Clear buffer and wasIntersection bit
|
||||||
void startIntersectionTest();
|
void startIntersectionTest();
|
||||||
|
|
||||||
// Return wasIntersection bit
|
/// Return wasIntersection bit
|
||||||
bool endIntersectionTest();
|
bool endIntersectionTest();
|
||||||
|
|
||||||
// Initiate a draw sequence
|
/// Initiate a draw sequence
|
||||||
void drawFrame();
|
void drawFrame();
|
||||||
|
|
||||||
// Draw a sprite of size boundingBox.size at boundingBox.position from bitmap
|
/// Draw a sprite of size boundingBox.size at boundingBox.position from bitmap
|
||||||
// if isMirrored then mirror around the vertical axis
|
/// if isMirrored then mirror around the vertical axis
|
||||||
// Bitmap's data is interpreted the following way:
|
/// Bitmap's data is interpreted the following way:
|
||||||
/*
|
/**
|
||||||
Each 16 bit word corresponds to an 8 pixel high column.
|
Each 16 bit word corresponds to an 8 pixel high column.
|
||||||
(These columns are laid out horizontally from left to right. Unfortunately,
|
(These columns are laid out horizontally from left to right. Unfortunately,
|
||||||
the display uses this addressing mode.) The higher 8 bits of the word is the
|
the display uses this addressing mode.) The higher 8 bits of the word is the
|
||||||
|
|
@ -63,9 +63,9 @@ void drawFrame();
|
||||||
*/
|
*/
|
||||||
void drawBitmapFromProgMem(Rectangle boundingBox, uint16_t const bitmap[boundingBox.size.x][(boundingBox.size.y + 7) / 8], bool isMirrored);
|
void drawBitmapFromProgMem(Rectangle boundingBox, uint16_t const bitmap[boundingBox.size.x][(boundingBox.size.y + 7) / 8], bool isMirrored);
|
||||||
|
|
||||||
// Draw a one byte repeated texture covering the parameter box
|
/// Draw a one byte repeated texture covering the parameter box
|
||||||
// for a white rectangle use these arguments: invertedMask: don't care, fill: 0xFF
|
/// for a white rectangle use these arguments: invertedMask: don't care, fill: 0xFF
|
||||||
// for a black rectangle use these arguments: invertedMask: 0xFF, fill: 0x00
|
/// for a black rectangle use these arguments: invertedMask: 0xFF, fill: 0x00
|
||||||
void drawFilledRectangle(Rectangle box, uint8_t invertedMask, uint8_t fill);
|
void drawFilledRectangle(Rectangle box, uint8_t invertedMask, uint8_t fill);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
#include "../uart/receive.h"
|
#include "../uart/receive.h"
|
||||||
|
|
||||||
|
|
||||||
// (0.5625 + (0.5625 + 1.6875) / 2) / 1000 / timer interval
|
/// (0.5625 + (0.5625 + 1.6875) / 2) / 1000 / timer interval
|
||||||
#define MEAN_OF_0_1_BIT_TIMES 53
|
#define MEAN_OF_0_1_BIT_TIMES 53
|
||||||
// 9 / 2 / 1000 / timer interval
|
/// 9 / 2 / 1000 / timer interval
|
||||||
#define MAYBE_ONE_CHECK_TIME 141
|
#define MAYBE_ONE_CHECK_TIME 141
|
||||||
// some large value
|
/// some large value
|
||||||
#define TIMEOUT 254
|
#define TIMEOUT 254
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
@ -139,8 +139,8 @@ ISR(TIM0_COMPB_vect) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void initializeInfra(OnCommandReceived onCommandReceived) {
|
void initializeInfra(OnCommandReceived onCommandReceived) {
|
||||||
setBit(PORTB, IR_PIN); // enable pull-up
|
setBit(PORTB, IR_PIN); /// enable pull-up
|
||||||
setBit(PCMSK, IR_PIN); // specific pin change interrupt enable
|
setBit(PCMSK, IR_PIN); /// specific pin change interrupt enable
|
||||||
setBit(GIMSK, PCIE); // global on pin change interrupt enable;
|
setBit(GIMSK, PCIE); /// global on pin change interrupt enable;
|
||||||
infra.onCommandReceived = onCommandReceived;
|
infra.onCommandReceived = onCommandReceived;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
|
|
||||||
|
|
||||||
/*
|
/**
|
||||||
Custom NEC implementation using a TSOP4838
|
Custom NEC implementation using a TSOP4838
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -15,9 +15,9 @@
|
||||||
|
|
||||||
typedef void (*OnCommandReceived)(uint8_t);
|
typedef void (*OnCommandReceived)(uint8_t);
|
||||||
|
|
||||||
// Initialize infra and call onCommandReceived with every received byte
|
/// Initialize infra and call onCommandReceived with every received byte
|
||||||
// Call onCommandReceived with the argument REPEAT_CODE if a repeat code
|
/// Call onCommandReceived with the argument REPEAT_CODE if a repeat code
|
||||||
// has been received.
|
/// has been received.
|
||||||
void initializeInfra(OnCommandReceived onCommandReceived);
|
void initializeInfra(OnCommandReceived onCommandReceived);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
|
|
||||||
// FrameFunction gets previousFrameTime (in milliseconds) as argument
|
/// FrameFunction gets previousFrameTime (in milliseconds) as argument
|
||||||
typedef bool (*FrameFunction)(uint8_t);
|
typedef bool (*FrameFunction)(uint8_t);
|
||||||
|
|
||||||
// Call function every frameLengthInMilliseconds while it returns true
|
/// Call function every frameLengthInMilliseconds while it returns true
|
||||||
void startFrameLoop(FrameFunction function, uint8_t frameLengthInMilliseconds);
|
void startFrameLoop(FrameFunction function, uint8_t frameLengthInMilliseconds);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue