From bd17b9c6da0848bf8bb878026ee509e2c381b75c Mon Sep 17 00:00:00 2001 From: tixiv Date: Fri, 19 Jun 2009 21:09:08 +0000 Subject: [PATCH] added panel one support --- animations/programm.c | 4 + borg_hw/Makefile | 4 + borg_hw/borg_hw_panel_one.c | 220 ++++++++++++++++++++++++++++++++++++ borg_hw/config.in | 8 +- borg_hw/config_panel_one.in | 6 + config.in | 1 + display_loop.c | 4 +- 7 files changed, 243 insertions(+), 4 deletions(-) create mode 100644 borg_hw/borg_hw_panel_one.c create mode 100644 borg_hw/config_panel_one.in diff --git a/animations/programm.c b/animations/programm.c index fbc35b5..baef72e 100644 --- a/animations/programm.c +++ b/animations/programm.c @@ -94,6 +94,10 @@ void test_palette2(){ } +#endif + +#ifdef ANIMATION_MHERWEG + void checkbox(){ unsigned char x, delay=250; diff --git a/borg_hw/Makefile b/borg_hw/Makefile index aa6d9e9..3b46ee5 100644 --- a/borg_hw/Makefile +++ b/borg_hw/Makefile @@ -26,6 +26,10 @@ ifeq ($(BORG_HW),HW_BORG_MINI) SRC = borg_hw_borg_mini.c endif +ifeq ($(BORG_HW),HW_PANEL_ONE) + SRC = borg_hw_panel_one.c +endif + ifeq ($(SRC),'') $(error no valid hardware driver selected ) endif diff --git a/borg_hw/borg_hw_panel_one.c b/borg_hw/borg_hw_panel_one.c new file mode 100644 index 0000000..94dfb07 --- /dev/null +++ b/borg_hw/borg_hw_panel_one.c @@ -0,0 +1,220 @@ + +#include"../autoconf.h" +#include +#include +#include +#include "borg_hw.h" + +/* Steckerbelegung Flachbandkabel am Panel + * (die Nummerierung ist in wirklichkeit umgekehrt) + * + * 1-3 GND + * 4 +5V für Logic + * 5-8 +12V + * 9-10 GND + * 11 CP3 + * 12 CP2 + * 13 CP1 + * 14 /show + * 15 CP4 + * 16 /EO3 + * 17-18 GND + * 19-26 D0-D7 + * + * Und nochmal richtigrum: + * 1 D7 + * 2 D6 + * 3 D5 + * 4 D4 + * 5 D3 + * 6 D2 + * 7 D1 + * 8 D0 + * 9 GND + * 10 GND + * 11 /EO3 + * 12 CP4 + * 13 /show + * 14 CP1 + * 15 CP2 + * 16 CP3 + * 17 GND + * 18 GND + * 19 +12V + * 20 +12V + * 21 +12V + * 22 +12V + * 23 +5V + * 24 GND + * 25 GND + * 26 GND + * + * Es werden 4 40374 Latches benutzt. Nr. 1,2 und 4 treiben vom Datenbus + * in Richtung Panel, Nr. 3 treibt von den Tastenausgängen auf den Datenbus. + * Die EOs von 1,2 und 4 liegen fest auf GND. + * + * Die LEDs sind in einer 12*16 Matrix angeordnet + * Die Werte für die LED spalten Werden mit CP1 und CP2 in die + * Latches übernommen (insgesammt 16 Spalten) + * Die Nummer der Zeile wird beim löschen von /show übernommen. + * + * Die Tasten sind in einer 8*8 Matrix angeordnet. + * Über Latch 4 werden die Zeilen einzeln auf high gesetzt, über + * Latch 3 können dann die Spalten gelesen werden. + * + */ + +//Datenport für das Panel +#define COLPORT PORTC +#define COLDDR DDRC +#define COLPIN PINC + +#define CTRLPORT PORTD +#define CTRLDDR DDRD + +// PINs on CTRLPORT +#define PIN_EO3 PD7 +#define PIN_CP4 PD2 +#define PIN_SHOW PD3 +#define PIN_CP1 PD4 +#define PIN_CP2 PD5 +#define PIN_CP3 PD6 + +//Der Puffer, in dem das aktuelle Bild gespeichert wird +unsigned char pixmap[NUMPLANE][NUM_ROWS][LINEBYTES]; + +volatile uint8_t keys[8]; + +inline void busywait() { + //unsigned char i; + //for(i=0;i<20;i++){ + // asm volatile("nop"); + //} +} + + +//Eine Zeile anzeigen +inline void rowshow(unsigned char row, unsigned char plane){ + CTRLPORT |= (1<