Rev 1798 | Rev 1801 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1798 | Rev 1799 | ||
|---|---|---|---|
| Line 31... | Line 31... | ||
| 31 | 31 | ||
| 32 | #define OUTPUT 0 |
32 | #define OUTPUT 0 |
| 33 | #define INPUT 1 |
33 | #define INPUT 1 |
| 34 | 34 | ||
| 35 | volatile GrLcdStateType GrLcdState; |
35 | volatile GrLcdStateType GrLcdState; |
| 36 | uint8_t dotmatrixFramebuf[ |
36 | uint8_t dotmatrixFramebuf[dotmatrixSIZEY][dotmatrixSIZEX/8]; |
| 37 | uint8_t dotmatrixRowCounter=0; |
37 | uint8_t dotmatrixRowCounter=0; |
| 38 | uint16_t dotmatrixBrightness=0; |
38 | uint16_t dotmatrixBrightness=0; |
| 39 | 39 | ||
| 40 | /* Write a byte on SPI */ |
40 | /* Write a byte on SPI */ |
| 41 | void dotmatrixSPIWrite(uint8_t data) { |
41 | void dotmatrixSPIWrite(uint8_t data) { |
| Line 54... | Line 54... | ||
| 54 | 54 | ||
| 55 | uint8_t dotmatrixGetColor(void){ |
55 | uint8_t dotmatrixGetColor(void){ |
| 56 | return GrLcdState.color; |
56 | return GrLcdState.color; |
| 57 | } |
57 | } |
| 58 | 58 | ||
| - | 59 | /* Sets data into framebuffer, data arrives in a byte as a column and needs to be shifted into the framebuffer */ |
|
| 59 | void dotmatrixSetData(uint8_t Data) |
60 | void dotmatrixSetData(uint8_t Data) |
| 60 | { |
61 | { |
| - | 62 | /* Which ledmodule */ |
|
| - | 63 | uint8_t module = GrLcdState.lcdXAddr%8; |
|
| - | 64 | /* Which column in ledmodule */ |
|
| - | 65 | uint8_t column = GrLcdState.lcdXAddr>>3; |
|
| - | 66 | /* Which row */ |
|
| - | 67 | uint8_t row = GrLcdState.lcdYAddr; |
|
| - | 68 | ||
| - | 69 | /* Repeat for each row */ |
|
| - | 70 | for (uint8_t i=0; i<8; i++) |
|
| - | 71 | { |
|
| - | 72 | /* Check panel size */ |
|
| - | 73 | if ((row+i < dotmatrixSIZEY) && (module < dotmatrixSIZEX/8)) |
|
| - | 74 | { |
|
| - | 75 | /* Shift one bit */ |
|
| - | 76 | Data = Data>>1; |
|
| - | 77 | /* Mask bit */ |
|
| - | 78 | uint8_t databit = Data&0x1; |
|
| - | 79 | if (databit==0) |
|
| - | 80 | { |
|
| - | 81 | /* Clear bit */ |
|
| - | 82 | dotmatrixFramebuf[row+i][module] &= ~(databit<<column); |
|
| - | 83 | } |
|
| - | 84 | else |
|
| - | 85 | { |
|
| - | 86 | /* Set bit */ |
|
| 61 |
|
87 | dotmatrixFramebuf[row+i][module] |= (databit<<column); |
| - | 88 | } |
|
| - | 89 | } |
|
| - | 90 | } |
|
| 62 | } |
91 | } |
| 63 | 92 | ||
| 64 | uint8_t dotmatrixGetData(void){ |
93 | uint8_t dotmatrixGetData(void){ |
| 65 | uint8_t input = 0; |
94 | uint8_t input = 0; |
| 66 | 95 | ||