From 62e4b41e4427c4878f1a851ae02d64a5e4d98e73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20M=C3=A1rk?= <peter.mark@hallgato.ppke.hu> Date: Thu, 2 May 2024 19:26:27 +0000 Subject: [PATCH] =?UTF-8?q?C=20k=C3=B3dja=20a=208=20bit=20addernek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eightbit.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 eightbit.c diff --git a/eightbit.c b/eightbit.c new file mode 100644 index 0000000..190e022 --- /dev/null +++ b/eightbit.c @@ -0,0 +1,46 @@ +#define LED_MATRIX_0_BASE (0x80000000)//100000000 00000000 00000000 0000000 +#define SWITCHES_0_BASE (0x80000004) //100000000 00000000 00000000 0000100 +#define BTN_0_BASE (0x80000008) //100000000 00000000 00000000 0001000 mutat 1 bite-ra és az ott lévő adatot éselem össze +#define PAUSE (0x10) + + +int main() { +volatile unsigned *LED = (unsigned *)LED_MATRIX_0_BASE; +volatile unsigned *switches = (unsigned *)SWITCHES_0_BASE; +volatile unsigned *buttons = (unsigned *)BTN_0_BASE; + +unsigned sw_state; +unsigned stored_value1 = 0; // Az első tárolt érték +unsigned stored_value2 = 0; // A második tárolt érték + +for (;;) { + sw_state = *switches; + + // Gombok kezelése + volatile unsigned store_btn1 = *buttons & 0x01; + volatile unsigned store_btn2 = *buttons & 0x02; + volatile unsigned calc_btn = *buttons & 0x04; + + // Értékek tárolása + if (store_btn1) { + stored_value1 = sw_state; + } else if (store_btn2) { + stored_value2 = sw_state; + } + + // Összeadás gomb kezelése + if (calc_btn) { + volatile unsigned sum = stored_value1 + stored_value2; + while (*buttons & 0x04) { + *LED = sum; + } + } else { + *LED = sw_state; + } + + // Várakozás + for (int n = PAUSE; n > 0; n--) + ; + } + +} -- GitLab