Subversion Repositories LedShow

Rev

Rev 6 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6 Rev 8
Line 5... Line 5...
5
 *      Author: Mike
5
 *      Author: Mike
6
 */
6
 */
7
 
7
 
8
#include "main.h"
8
#include "main.h"
9
#include "leds.h"
9
#include "leds.h"
-
 
10
#include "dmx.h"
10
 
11
 
11
// Target clock rate 800 kHz
12
// Target clock rate 800 kHz
12
#define SPICLOCK 9000000UL
13
#define SPICLOCK 9000000UL
13
// one clock of SPI is 166nS
14
// one clock of SPI is 166nS
14
#define TSPI (1000000000UL/SPICLOCK)
15
#define TSPI (1000000000UL/SPICLOCK)
Line 78... Line 79...
78
                bufPtr = BUFFER_SIZE-1; // limit
79
                bufPtr = BUFFER_SIZE-1; // limit
79
        }
80
        }
80
}
81
}
81
 
82
 
82
 
83
 
-
 
84
 
83
void codeReset (void)
85
void codeReset (void)
84
{
86
{
85
                codeBit(0,TRESET);
87
                codeBit(0,TRESET);
86
}
88
}
87
 
89
 
Line 105... Line 107...
105
                for (i=0; i<8; i++)
107
                for (i=0; i<8; i++)
106
                {
108
                {
107
                        codeRL(val & 0x80);
109
                        codeRL(val & 0x80);
108
                        val<<=1;
110
                        val<<=1;
109
                }
111
                }
110
 
-
 
111
}
112
}
112
 
113
 
113
 
114
 
114
 
-
 
115
 
-
 
116
 
-
 
117
void codeFRGBW(frgbw_t led )
115
void codeFRGBW(frgbw_t led )
118
{
116
{
119
 
117
 
120
                codeRLByte(((uint16_t)(led.green) * led.fader)/256);
118
                codeRLByte(((uint16_t)(led.green) * led.fader)/256);
121
                codeRLByte(((uint16_t)(led.red) * led.fader)/256);
119
                codeRLByte(((uint16_t)(led.red) * led.fader)/256);
122
                codeRLByte(((uint16_t)(led.blue) * led.fader)/256);
120
                codeRLByte(((uint16_t)(led.blue) * led.fader)/256);
123
                codeRLByte(((uint16_t)(led.white) * led.fader)/256);
121
                codeRLByte(((uint16_t)(led.white) * led.fader)/256); // if only RGB LEDS skip this step.
124
}
-
 
125
 
-
 
126
 
-
 
127
frgbw_t led0 = { 128, 0, 0, 0, 0 };
-
 
128
frgbw_t led1 = { 128, 0, 0, 0, 2 };
-
 
129
frgbw_t ledZ = { 0,0,0,0 };
-
 
130
 
-
 
131
 
-
 
132
void sendLeds()
-
 
133
{
-
 
134
 
-
 
135
        initCode();
-
 
136
        codeReset();
-
 
137
 
-
 
138
    led0.green++;
-
 
139
///     led0.fader++;
-
 
140
 
-
 
141
        led1.red++;
-
 
142
//      led1.fader--;
-
 
143
 
-
 
144
        codeFRGBW(led0);
-
 
145
        codeFRGBW(led1);
-
 
146
 
-
 
147
        // send terminal
-
 
148
 
-
 
149
        codeStop();
-
 
150
    busy= 1;
-
 
151
        HAL_SPI_Transmit_DMA(&hspi1,buffer,bufPtr);
-
 
152
  //
-
 
153
        while(busy) {};
-
 
154
}
122
}
155
 
123
 
156
 
124
 
-
 
125
// hook the weak symbol
157
void HAL_SPI_TxCpltCallback( SPI_HandleTypeDef * hspi)
126
void HAL_SPI_TxCpltCallback( SPI_HandleTypeDef * hspi)
158
{
127
{
159
        (void ) hspi;
128
        (void ) hspi;
160
        busy = 0;
129
        busy = 0;
161
}
130
}
162
 
131
 
163
 
132
 
-
 
133
void sendCode(void)
-
 
134
{
-
 
135
        busy= 1;
-
 
136
        HAL_SPI_Transmit_DMA(&hspi1,buffer,bufPtr);
-
 
137
  //
-
 
138
        while(busy) {};
-
 
139
};
-
 
140
 
164
 
141