Rev 1774 | Rev 1776 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1774 | Rev 1775 | ||
|---|---|---|---|
| Line 167... | Line 167... | ||
| 167 | } |
167 | } |
| 168 | 168 | ||
| 169 | void act_DotMatrix_HandleMessage(StdCan_Msg_t *rxMsg) |
169 | void act_DotMatrix_HandleMessage(StdCan_Msg_t *rxMsg) |
| 170 | { |
170 | { |
| 171 | if ( StdCan_Ret_class(rxMsg->Header) == CAN_MODULE_CLASS_ACT && |
171 | if ( StdCan_Ret_class(rxMsg->Header) == CAN_MODULE_CLASS_ACT && |
| 172 | StdCan_Ret_direction(rxMsg->Header) == |
172 | StdCan_Ret_direction(rxMsg->Header) == DIRECTIONFLAG_TO_OWNER && |
| 173 | rxMsg->Header.ModuleType == CAN_MODULE_TYPE_ACT_DOTMATRIX && |
173 | rxMsg->Header.ModuleType == CAN_MODULE_TYPE_ACT_DOTMATRIX && |
| 174 | rxMsg->Header.ModuleId == act_DotMatrix_ID) |
174 | rxMsg->Header.ModuleId == act_DotMatrix_ID) |
| 175 | { |
175 | { |
| 176 | switch (rxMsg->Header.Command) |
176 | switch (rxMsg->Header.Command) |
| 177 | { |
177 | { |
| 178 | /* If brightness should be adjusted */ |
178 | /* If brightness should be adjusted */ |
| 179 | case CAN_MODULE_CMD_PHYSICAL_PWM: |
179 | case CAN_MODULE_CMD_PHYSICAL_PWM: |
| 180 | if (rxMsg->Length == 3) { |
180 | if (rxMsg->Length == 3) { |
| 181 | act_DotMatrix_brightness = (rxMsg->Data[1]<<8)+(rxMsg->Data[2]); |
181 | act_DotMatrix_brightness = (rxMsg->Data[1]<<8)+(rxMsg->Data[2]); |
| 182 | 182 | ||
| 183 | if (OCR0B != (uint16_t |
183 | if (OCR0B != 0xff-((uint16_t)(act_DotMatrix_brightness*act_DotMatrix_PWM_FACT)>>8)) { |
| 184 | cli(); |
184 | cli(); |
| 185 | OCR0B=(uint16_t |
185 | OCR0B=0xff-((uint16_t)(act_DotMatrix_brightness*act_DotMatrix_PWM_FACT)>>8); |
| 186 | if (OCR0B==0) |
- | |
| 187 | { |
- | |
| 188 | TCCR0A &= ~((1<<COM0B0)|(1<<COM0B1)); |
- | |
| 189 | } |
- | |
| 190 | else |
- | |
| 191 | { |
- | |
| 192 | TCCR0A |= (1<<COM0B1); |
- | |
| 193 | } |
- | |
| 194 | sei(); |
186 | sei(); |
| 195 | } |
187 | } |
| 196 | } |
188 | } |
| 197 | break; |
189 | break; |
| 198 | /* If data to first module */ |
190 | /* If data to first module */ |