#include "../config.h" #include "../makros.h" #include #include #include #include "borg_hw.h" #define ROWPORT PORTC #define ROWDDR DDRC #define COLPORT PORTA #define COLDDR DDRA #define MYPORT PORTC #define MYPORT2 PORTA #define SHOW 0 #define DATA 1 #define PIN_ENABLE 0 #define PIN_DATA 1 unsigned char pixmap[NUMPLANE][NUM_ROWS][LINEBYTES]; inline void rowshow(unsigned char row, unsigned char plane){ unsigned char p, n,m, outb, clkmsk; clkmsk = 0x80>>row; // if (row==4) { MYPORT &= ~(1 << PIN_ENABLE) ; //MYPORT |= (1 << PIN_ENABLE) ; //hide // MYPORT |= (1 << PIN_ENABLE) ; //hide for (n=7;n<8;n--) { outb = pixmap[plane][row][n]; p=0x80; for (m=0;m<8;m++) { if (outb & p) // MYPORT |= (1 << PIN_DATA); MYPORT &= ~(1 << PIN_DATA) ; else // MYPORT &= ~(1 << PIN_DATA) ; //off MYPORT |= (1 << PIN_DATA); MYPORT2 &= ~clkmsk ; MYPORT2 |= clkmsk ; p>>=1; } } } MYPORT |= (1 << PIN_ENABLE) ; // //MYPORT &= ~(1 << PIN_ENABLE) ; // for(n=0;n<250;n++) asm ("nop"); } SIGNAL(SIG_OUTPUT_COMPARE0) { static unsigned char plane = 0; unsigned char row = 0; switch (plane){ case 0: OCR0 = 60; break; case 1: OCR0 = 120; break; case 2: OCR0 = 160; break; // case 3: // OCR0 = 24; // break; // case 4: // OCR0 = 48; // break; } for(row=0;row