Subversion Repositories HomeAutomation

Rev

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[8][4];
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
//  dotmatrixFramebuf[8][4]
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