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