glitch in column 3 removed
This commit is contained in:
118
led.c
118
led.c
@ -27,36 +27,28 @@ void ledSetMatrix(uint8_t col, uint8_t row, tColor color) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
row0: P1.3
|
row0: P1.2
|
||||||
row1: P1.4
|
row1: P1.3
|
||||||
row2: P1.5
|
row2: P1.4
|
||||||
row3: P1.7
|
row3: P1.7
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void selectRow(uint8_t row) {
|
static inline void selectRow(uint8_t row) {
|
||||||
switch (row) {
|
switch (row) {
|
||||||
case 0:
|
case 0:
|
||||||
P1DIR &= ~(BIT3 | BIT4 | BIT7);
|
|
||||||
P1OUT &= ~(BIT3 | BIT4 | BIT7);
|
P1OUT &= ~(BIT3 | BIT4 | BIT7);
|
||||||
P1DIR |= BIT2;
|
|
||||||
P1OUT |= BIT2;
|
P1OUT |= BIT2;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
P1DIR &= ~(BIT2 | BIT4 | BIT7);
|
|
||||||
P1OUT &= ~(BIT2 | BIT4 | BIT7);
|
P1OUT &= ~(BIT2 | BIT4 | BIT7);
|
||||||
P1DIR |= BIT3;
|
|
||||||
P1OUT |= BIT3;
|
P1OUT |= BIT3;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
P1DIR &= ~(BIT2 | BIT3 | BIT7);
|
|
||||||
P1OUT &= ~(BIT2 | BIT3 | BIT7);
|
P1OUT &= ~(BIT2 | BIT3 | BIT7);
|
||||||
P1DIR |= BIT4;
|
|
||||||
P1OUT |= BIT4;
|
P1OUT |= BIT4;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
P1DIR &= ~(BIT2 | BIT3 | BIT4);
|
|
||||||
P1OUT &= ~(BIT2 | BIT3 | BIT4);
|
P1OUT &= ~(BIT2 | BIT3 | BIT4);
|
||||||
P1DIR |= BIT7;
|
|
||||||
P1OUT |= BIT7;
|
P1OUT |= BIT7;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -79,35 +71,27 @@ void selectCol(uint8_t column, tColor color) {
|
|||||||
case BLUE:
|
case BLUE:
|
||||||
switch (column) {
|
switch (column) {
|
||||||
case 0:
|
case 0:
|
||||||
P1DIR &= ~(BIT6);
|
P1OUT |= BIT6;
|
||||||
P1OUT &= ~(BIT6);
|
P2OUT |= BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5;
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P1DIR |= BIT5;
|
|
||||||
P1OUT &= ~BIT5;
|
P1OUT &= ~BIT5;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT1 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2DIR |= BIT2;
|
|
||||||
P2OUT &= ~BIT2;
|
P2OUT &= ~BIT2;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT3 | BIT5);
|
|
||||||
P2DIR |= BIT4;
|
|
||||||
P2OUT &= ~BIT4;
|
P2OUT &= ~BIT4;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT3 | BIT4);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT3 | BIT4);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT3 | BIT4);
|
|
||||||
P2DIR |= BIT5;
|
|
||||||
P2OUT &= ~BIT5;
|
P2OUT &= ~BIT5;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -115,35 +99,27 @@ void selectCol(uint8_t column, tColor color) {
|
|||||||
case RED:
|
case RED:
|
||||||
switch (column) {
|
switch (column) {
|
||||||
case 0:
|
case 0:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2DIR |= BIT0;
|
|
||||||
P2OUT &= ~BIT0;
|
P2OUT &= ~BIT0;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2DIR |= BIT1;
|
|
||||||
P2OUT &= ~BIT1;
|
P2OUT &= ~BIT1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT4 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT5);
|
|
||||||
P2DIR |= BIT3;
|
|
||||||
P2OUT &= ~BIT3;
|
P2OUT &= ~BIT3;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
P1DIR &= ~(BIT5);
|
P1OUT |= (BIT5);
|
||||||
P1OUT &= ~(BIT5);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P1DIR |= BIT6;
|
|
||||||
P1OUT &= ~BIT6;
|
P1OUT &= ~BIT6;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -151,28 +127,20 @@ void selectCol(uint8_t column, tColor color) {
|
|||||||
case OFF:
|
case OFF:
|
||||||
switch (column) {
|
switch (column) {
|
||||||
case 0:
|
case 0:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
P1DIR &= ~(BIT5 | BIT6);
|
P1OUT |= (BIT5 | BIT6);
|
||||||
P1OUT &= ~(BIT5 | BIT6);
|
P2OUT |= (BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
||||||
P2DIR &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
P2OUT &= ~(BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -217,11 +185,23 @@ void ledExec() {
|
|||||||
if (rowNum >= SIZE) {
|
if (rowNum >= SIZE) {
|
||||||
rowNum = 0;
|
rowNum = 0;
|
||||||
}
|
}
|
||||||
selectRow(rowNum);
|
|
||||||
}
|
}
|
||||||
selectCol(colNum, matrix[colNum][rowNum]);
|
|
||||||
|
tColor color = matrix[colNum][rowNum];
|
||||||
|
selectCol(colNum, OFF);
|
||||||
|
selectRow(rowNum);
|
||||||
|
selectCol(colNum, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ledInit() {
|
void ledInit() {
|
||||||
|
// rows
|
||||||
|
P1DIR |= BIT2 | BIT3 | BIT4 | BIT7;
|
||||||
|
|
||||||
|
// columns and colors
|
||||||
|
P1DIR |= BIT5 | BIT6;
|
||||||
|
P2DIR |= BIT0 | BIT2 | BIT1 | BIT4 | BIT3 | BIT5;
|
||||||
|
|
||||||
|
|
||||||
// schAdd(testledExec, NULL, 0, 500);
|
// schAdd(testledExec, NULL, 0, 500);
|
||||||
|
// schAdd(ledExec, NULL, 0, 1);
|
||||||
}
|
}
|
||||||
|
4
main.c
4
main.c
@ -27,8 +27,8 @@ int main() {
|
|||||||
schInit();
|
schInit();
|
||||||
|
|
||||||
ledInit();
|
ledInit();
|
||||||
// patternInit();
|
patternInit();
|
||||||
ledSetMatrix(3, 1, BLUE);
|
// ledSetMatrix(0, 1, BLUE);
|
||||||
|
|
||||||
__enable_interrupt();
|
__enable_interrupt();
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ void patternExec() {
|
|||||||
static uint8_t i = 0;
|
static uint8_t i = 0;
|
||||||
static uint8_t j = 0;
|
static uint8_t j = 0;
|
||||||
|
|
||||||
ledSetMatrix(i, j, BLUE);
|
ledSetMatrix(i, j, OFF);
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
if (i > 3) {
|
if (i > 3) {
|
||||||
@ -19,10 +19,10 @@ void patternExec() {
|
|||||||
j = 0;
|
j = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ledSetMatrix(i, j, RED);
|
ledSetMatrix(i, j, BLUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void patternInit() {
|
void patternInit() {
|
||||||
schAdd(patternExec, NULL, 0, 1000);
|
schAdd(patternExec, NULL, 0, 500);
|
||||||
}
|
}
|
Reference in New Issue
Block a user