Added HangmanGame class, but does not work yet

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

Committer:
markpsymonds
Date:
Mon Dec 04 20:15:18 2017 +0000
Revision:
1:a5ec6f9dcf0d
Parent:
0:fa7450a43b99
Fixed most compile issues in hangman.cpp/.h.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-FlexBook 0:fa7450a43b99 1 /*
group-FlexBook 0:fa7450a43b99 2 Plastic Logic EPD project on MSP430
group-FlexBook 0:fa7450a43b99 3
group-FlexBook 0:fa7450a43b99 4 Copyright (C) 2013 Plastic Logic Limited
group-FlexBook 0:fa7450a43b99 5
group-FlexBook 0:fa7450a43b99 6 This program is free software: you can redistribute it and/or modify
group-FlexBook 0:fa7450a43b99 7 it under the terms of the GNU General Public License as published by
group-FlexBook 0:fa7450a43b99 8 the Free Software Foundation, either version 3 of the License, or
group-FlexBook 0:fa7450a43b99 9 (at your option) any later version.
group-FlexBook 0:fa7450a43b99 10
group-FlexBook 0:fa7450a43b99 11 This program is distributed in the hope that it will be useful,
group-FlexBook 0:fa7450a43b99 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
group-FlexBook 0:fa7450a43b99 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
group-FlexBook 0:fa7450a43b99 14 GNU General Public License for more details.
group-FlexBook 0:fa7450a43b99 15
group-FlexBook 0:fa7450a43b99 16 You should have received a copy of the GNU General Public License
group-FlexBook 0:fa7450a43b99 17 along with this program. If not, see <http://www.gnu.org/licenses/>.
group-FlexBook 0:fa7450a43b99 18 */
group-FlexBook 0:fa7450a43b99 19 /*
group-FlexBook 0:fa7450a43b99 20 * vcom.c -- VCOM Calculation support
group-FlexBook 0:fa7450a43b99 21 *
group-FlexBook 0:fa7450a43b99 22 * Authors: Nick Terry <nick.terry@plasticlogic.com>
group-FlexBook 0:fa7450a43b99 23 *
group-FlexBook 0:fa7450a43b99 24 */
group-FlexBook 0:fa7450a43b99 25
group-FlexBook 0:fa7450a43b99 26 #include "assert.h"
group-FlexBook 0:fa7450a43b99 27 #include "vcom.h"
group-FlexBook 0:fa7450a43b99 28 #include <stdlib.h>
group-FlexBook 0:fa7450a43b99 29
group-FlexBook 0:fa7450a43b99 30 #define LOG_TAG "vcom"
group-FlexBook 0:fa7450a43b99 31 #include "utils.h"
group-FlexBook 0:fa7450a43b99 32
group-FlexBook 0:fa7450a43b99 33 void vcom_init(struct vcom_cal *v, const struct pl_hw_vcom_info *c)
group-FlexBook 0:fa7450a43b99 34 {
group-FlexBook 0:fa7450a43b99 35 assert(v != NULL);
group-FlexBook 0:fa7450a43b99 36 assert(c != NULL);
group-FlexBook 0:fa7450a43b99 37
group-FlexBook 0:fa7450a43b99 38 v->dac_dx = c->dac_x2 - c->dac_x1;
group-FlexBook 0:fa7450a43b99 39 v->dac_dy = c->dac_y2 - c->dac_y1;
group-FlexBook 0:fa7450a43b99 40 v->dac_offset = c->dac_y1 -
group-FlexBook 0:fa7450a43b99 41 DIV_ROUND_CLOSEST((c->dac_x1 * v->dac_dy), v->dac_dx);
group-FlexBook 0:fa7450a43b99 42 v->swing = c->vgpos_mv - c->vgneg_mv;
group-FlexBook 0:fa7450a43b99 43 v->swing_ideal = c->swing_ideal;
group-FlexBook 0:fa7450a43b99 44 v->dac_step_mv = DIV_ROUND_CLOSEST(v->dac_dy, v->dac_dx);
group-FlexBook 0:fa7450a43b99 45 }
group-FlexBook 0:fa7450a43b99 46
group-FlexBook 0:fa7450a43b99 47 int vcom_calculate(const struct vcom_cal *v, int input_mv)
group-FlexBook 0:fa7450a43b99 48 {
group-FlexBook 0:fa7450a43b99 49 int32_t scaled_mv;
group-FlexBook 0:fa7450a43b99 50 int dac_value;
group-FlexBook 0:fa7450a43b99 51
group-FlexBook 0:fa7450a43b99 52 assert(v != NULL);
group-FlexBook 0:fa7450a43b99 53
group-FlexBook 0:fa7450a43b99 54 scaled_mv = DIV_ROUND_CLOSEST(input_mv * v->swing, v->swing_ideal);
group-FlexBook 0:fa7450a43b99 55 dac_value = DIV_ROUND_CLOSEST((scaled_mv - v->dac_offset) * v->dac_dx,
group-FlexBook 0:fa7450a43b99 56 v->dac_dy);
group-FlexBook 0:fa7450a43b99 57
group-FlexBook 0:fa7450a43b99 58 LOG("input: %d, scaled: %ld, DAC reg: 0x%02X",
group-FlexBook 0:fa7450a43b99 59 input_mv, scaled_mv, dac_value);
group-FlexBook 0:fa7450a43b99 60
group-FlexBook 0:fa7450a43b99 61 return dac_value;
group-FlexBook 0:fa7450a43b99 62 }