Add ledmatrix support
This commit is contained in:
parent
a27dd51912
commit
ec9e6d9506
|
@ -3,14 +3,29 @@
|
||||||
#include <pentabug/app.h>
|
#include <pentabug/app.h>
|
||||||
#include <pentabug/hal.h>
|
#include <pentabug/hal.h>
|
||||||
|
|
||||||
|
#ifdef MATRIX
|
||||||
|
uint8_t inv = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
static void init(void) {
|
static void init(void) {
|
||||||
led_on(RIGHT);
|
led_on(RIGHT);
|
||||||
|
matrix_start();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void blinker(void) {
|
static void blinker(void) {
|
||||||
led_inv(RIGHT);
|
led_inv(RIGHT);
|
||||||
led_inv(LEFT);
|
led_inv(LEFT);
|
||||||
|
|
||||||
|
#ifdef MATRIX
|
||||||
|
for(uint8_t x = 0; x < 3; ++x) {
|
||||||
|
for(uint8_t y = 0; y < 3; ++y) {
|
||||||
|
matrix_set(x, y, ((x + y) & 1) ^ inv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inv = !inv;
|
||||||
|
#endif
|
||||||
|
|
||||||
wait_ms(500);
|
wait_ms(500);
|
||||||
|
|
||||||
if(button_clicked(RIGHT)) {
|
if(button_clicked(RIGHT)) {
|
||||||
|
|
|
@ -13,24 +13,24 @@ void matrix_init(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void move_line(uint8_t line) {
|
static void move_line(uint8_t line) {
|
||||||
PORTD &= ~0xe0;
|
PORTD |= 0xe0;
|
||||||
PORTD |= 1 << (line + 5);
|
PORTD &= ~(1 << (line + 5));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void write_line(uint8_t data[]) {
|
static void write_line(uint8_t data[]) {
|
||||||
PORTC |= (1 << 5) | (1 << 4);
|
PORTC &= ~((1 << 5) | (1 << 4));
|
||||||
PORTB |= 1 << 2;
|
PORTB &= ~(1 << 2);
|
||||||
|
|
||||||
if(data[0]) {
|
if(data[0]) {
|
||||||
PORTC &= ~(1 << 5);
|
PORTC |= 1 << 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data[1]) {
|
if(data[1]) {
|
||||||
PORTC &= ~(1 << 4);
|
PORTC |= 1 << 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data[2]) {
|
if(data[2]) {
|
||||||
PORTB &= ~(1 << 2);
|
PORTB |= 1 << 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user