Browse Source

add atmega644p support for borg16 (untested)

feature/2015
kju 15 years ago
parent
commit
c9437891b7
  1. 23
      borg_hw/borg_hw_borg16.c

23
borg_hw/borg_hw_borg16.c

@ -32,6 +32,13 @@
#define COLDDR2 DDR(COLPORT2) #define COLDDR2 DDR(COLPORT2)
#define ROWDDR DDR(ROWPORT) #define ROWDDR DDR(ROWPORT)
#ifdef __AVR_ATmega644P__
/* more ifdef magic :-( */
#define OCR0 OCR0A
#define SIG_OUTPUT_COMPARE0 SIG_OUTPUT_COMPARE0A
#endif
//Der Puffer, in dem das aktuelle Bild gespeichert wird //Der Puffer, in dem das aktuelle Bild gespeichert wird
unsigned char pixmap[NUMPLANE][NUM_ROWS][LINEBYTES]; unsigned char pixmap[NUMPLANE][NUM_ROWS][LINEBYTES];
@ -161,7 +168,13 @@ void timer0_off(){
COLPORT2 = 0; COLPORT2 = 0;
ROWPORT = 0; ROWPORT = 0;
#ifdef __AVR_ATmega644P__
TCCR0A = 0x00;
TCCR0B = 0x00;
#else
TCCR0 = 0x00; TCCR0 = 0x00;
#endif
sei(); sei();
} }
@ -178,10 +191,18 @@ void timer0_on(){
1 0 1 clk/1024 1 0 1 clk/1024
*/ */
TCCR0 = 0x0C; // CTC Mode, clk/64 #ifdef __AVR_ATmega644P__
TCCR0A = 0x02; // CTC Mode
TCCR0B = 0x04; // clk/256
TCNT0 = 0; // reset timer
OCR0 = 20; // Compare with this value
TIMSK0 = 0x02; // Compare match Interrupt on
#else
TCCR0 = 0x0C; // CTC Mode, clk/256
TCNT0 = 0; // reset timer TCNT0 = 0; // reset timer
OCR0 = 20; // Compare with this value OCR0 = 20; // Compare with this value
TIMSK = 0x02; // Compare match Interrupt on TIMSK = 0x02; // Compare match Interrupt on
#endif
} }
void borg_hw_init(){ void borg_hw_init(){

Loading…
Cancel
Save