#include "../config.h" #include "../makros.h" #include #include #include #include "borg_hw.h" /* // Diese #defines werden nun durch menuconfig gesetzt // 16 Spalten insgesamt direkt gesteuert, dafür 2 Ports #define COLPORT1 PORTA #define COLDDR1 DDRA #define COLPORT2 PORTC #define COLDDR2 DDRC // Der andere Port übernimmt die Steuerung der Schieberegister #define ROWPORT PORTD #define ROWDDR DDRD // Clock und reset gehen gemeinsam an beide Schieberegister // der reset pin ist negiert #define PIN_MCLR PD4 #define PIN_CLK PD5 //das dier sind die individuellen Dateneingänge für die Schieberegister #define PIN_DATA1 PD6 #define PIN_DATA2 PD7 */ #define COLDDR1 DDR(COLPORT1) #define COLDDR2 DDR(COLPORT2) #define ROWDDR DDR(ROWPORT) //Der Puffer, in dem das aktuelle Bild gespeichert wird unsigned char pixmap[NUMPLANE][NUM_ROWS][LINEBYTES]; //Eine Zeile anzeigen inline void rowshow(unsigned char row, unsigned char plane){ //Die Zustände von der vorherigen Zeile löschen COLPORT1 = 0; COLPORT2 = 0; //kurze Warteschleife, damit die Treiber auch wirklich ausschalten unsigned char i; for(i=0;i<20;i++){ asm volatile("nop"); } if (row == 0){ //Zeile 0: Das erste Schieberegister initialisieren ROWPORT&= ~(1<