@@ -18,3 +18,32 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
#include <avr/io.h> | |||
#include <avr/interrupt.h> | |||
#include "led_matrix.h" | |||
#define LED_MATRIX_TIMER_TOP F_CPU/(256*64)/LED_MATRIX_ROWS | |||
void led_matrix_init(void) | |||
{ | |||
/* Timer1 setup */ | |||
/* CTC mode */ | |||
TCCR1B |= (1<<WGM12); | |||
/* Clock selelct: clk/1 */ | |||
TCCR1B |= (1<<CS10); | |||
/* Set TOP value */ | |||
uint8_t sreg = SREG; | |||
cli(); | |||
OCR1AH = (LED_MATRIX_TIMER_TOP >> 8) & 0xFF; | |||
OCR1AL = LED_MATRIX_TIMER_TOP & 0xFF; | |||
SREG = sreg; | |||
} | |||
void led_matrix_enable(void) | |||
{ | |||
/* Enable Compare Match Interrupt */ | |||
TIMSK1 |= _BV(OCIE1A); | |||
} | |||
void led_matrix_disable(void) | |||
{ | |||
/* Disable Compare Match Interrupt */ | |||
TIMSK1 &= ~_BV(OCIE1A); | |||
} |
@@ -31,11 +31,17 @@ typedef struct { | |||
uint8_t value; | |||
} led_matrix_element_t; | |||
#ifdef LED_MATRIX_ENABLE | |||
uint8_t led_matrix_rows(void); | |||
uint8_t led_matrix_cols(void); | |||
void led_matrix_init(void); | |||
void led_matrix_enable(void); | |||
void led_matrix_disable(void); | |||
uint8_t led_matrix_scan(void); | |||
#else | |||
#define led_matrix_rows() | |||
#define led_matrix_cols() | |||
#define led_matrix_init() | |||
#endif | |||
#endif |
@@ -0,0 +1,17 @@ | |||
/* | |||
Copyright 2013,2014 Kai Ryu <[email protected]> | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||