Rev 1711 | Rev 1714 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1711 | Rev 1712 | ||
|---|---|---|---|
| Line 4... | Line 4... | ||
| 4 | 4 | ||
| 5 | static uint16_t setValue[8]; |
5 | static uint16_t setValue[8]={0,0,0,0,0,0,0,0}; |
| 6 | static uint16_t isValue[8]; |
6 | static uint16_t isValue[8]; |
| 7 | 7 | ||
| 8 | #ifdef act_pcaPWM_USEEEPROM |
8 | #ifdef act_pcaPWM_USEEEPROM |
| 9 | #include "act_pcaPWM_eeprom.h" |
9 | #include "act_pcaPWM_eeprom.h" |
| 10 | struct eeprom_act_pcaPWM EEMEM eeprom_act_pcaPWM = |
10 | struct eeprom_act_pcaPWM EEMEM eeprom_act_pcaPWM = |
| Line 76... | Line 76... | ||
| 76 | { |
76 | { |
| 77 | if (setValue[i] != isValue[i]) |
77 | if (setValue[i] != isValue[i]) |
| 78 | { |
78 | { |
| 79 | isValue[i] = setValue[i]; |
79 | isValue[i] = setValue[i]; |
| 80 | pca9634_setDuty(i, isValue[i]*act_pcaPWM_FACT); |
80 | pca9634_setDuty(i, isValue[i]*act_pcaPWM_FACT); |
| - | 81 | #ifdef act_pcaPWM_USEEEPROM |
|
| 81 | Timer_SetTimeout(act_pcaPWM_STORE_VALUE_TIMEOUT, act_pcaPWM_STORE_VALUE_TIMEOUT_TIME*1000, TimerTypeOneShot, 0); |
82 | Timer_SetTimeout(act_pcaPWM_STORE_VALUE_TIMEOUT, act_pcaPWM_STORE_VALUE_TIMEOUT_TIME*1000, TimerTypeOneShot, 0); |
| - | 83 | #endif |
|
| - | 84 | } |
|
| 82 | } |
85 | } |
| 83 | } |
- | |
| 84 | 86 | ||
| - | 87 | #ifdef act_pcaPWM_USEEEPROM |
|
| 85 | if (Timer_Expired(act_pcaPWM_STORE_VALUE_TIMEOUT)) |
88 | if (Timer_Expired(act_pcaPWM_STORE_VALUE_TIMEOUT)) |
| 86 | { |
89 | { |
| 87 | if (isValue[0] != eeprom_read_word(EEDATA16.ch1)) |
90 | if (isValue[0] != eeprom_read_word(EEDATA16.ch1)) |
| 88 | { |
91 | { |
| 89 | eeprom_write_word_crc(EEDATA16.ch1, isValue[0], WITH_CRC); |
92 | eeprom_write_word_crc(EEDATA16.ch1, isValue[0], WITH_CRC); |
| 90 | } |
93 | } |
| 91 | if (isValue[1] != eeprom_read_word(EEDATA16.ch2)) |
94 | if (isValue[1] != eeprom_read_word(EEDATA16.ch2)) |
| 92 | { |
95 | { |
| 93 | eeprom_write_word_crc(EEDATA16.ch2, isValue[1], WITH_CRC); |
96 | eeprom_write_word_crc(EEDATA16.ch2, isValue[1], WITH_CRC); |
| Line 97... | Line 100... | ||
| 97 | eeprom_write_word_crc(EEDATA16.ch3, isValue[2], WITH_CRC); |
100 | eeprom_write_word_crc(EEDATA16.ch3, isValue[2], WITH_CRC); |
| 98 | } |
101 | } |
| 99 | if (isValue[3] != eeprom_read_word(EEDATA16.ch4)) |
102 | if (isValue[3] != eeprom_read_word(EEDATA16.ch4)) |
| 100 | { |
103 | { |
| 101 | eeprom_write_word_crc(EEDATA16.ch4, isValue[3], WITH_CRC); |
104 | eeprom_write_word_crc(EEDATA16.ch4, isValue[3], WITH_CRC); |
| 102 | } |
105 | } |
| 103 | if (isValue[4] != eeprom_read_word(EEDATA16.ch5)) |
106 | if (isValue[4] != eeprom_read_word(EEDATA16.ch5)) |
| 104 | { |
107 | { |
| 105 | eeprom_write_word_crc(EEDATA16.ch5, isValue[4], WITH_CRC); |
108 | eeprom_write_word_crc(EEDATA16.ch5, isValue[4], WITH_CRC); |
| 106 | } |
109 | } |
| 107 | if (isValue[5] != eeprom_read_word(EEDATA16.ch6)) |
110 | if (isValue[5] != eeprom_read_word(EEDATA16.ch6)) |
| Line 115... | Line 118... | ||
| 115 | if (isValue[7] != eeprom_read_word(EEDATA16.ch8)) |
118 | if (isValue[7] != eeprom_read_word(EEDATA16.ch8)) |
| 116 | { |
119 | { |
| 117 | eeprom_write_word_crc(EEDATA16.ch8, isValue[7], WITH_CRC); |
120 | eeprom_write_word_crc(EEDATA16.ch8, isValue[7], WITH_CRC); |
| 118 | } |
121 | } |
| 119 | } |
122 | } |
| 120 | 123 | #endif |
|
| 121 | } |
124 | } |
| 122 | 125 | ||
| 123 | void act_pcaPWM_HandleMessage(StdCan_Msg_t *rxMsg) |
126 | void act_pcaPWM_HandleMessage(StdCan_Msg_t *rxMsg) |
| 124 | { |
127 | { |
| 125 | if ( StdCan_Ret_class(rxMsg->Header) == CAN_MODULE_CLASS_ACT && |
128 | if ( StdCan_Ret_class(rxMsg->Header) == CAN_MODULE_CLASS_ACT && |
| 126 | StdCan_Ret_direction(rxMsg->Header) == DIRECTIONFLAG_TO_OWNER && |
129 | StdCan_Ret_direction(rxMsg->Header) == DIRECTIONFLAG_TO_OWNER && |
| 127 | rxMsg->Header.ModuleType == CAN_MODULE_TYPE_ACT_PCAPWM && |
130 | rxMsg->Header.ModuleType == CAN_MODULE_TYPE_ACT_PCAPWM && |
| 128 | rxMsg->Header.ModuleId == act_pcaPWM_ID) |
131 | rxMsg->Header.ModuleId == act_pcaPWM_ID) |
| 129 | { |
132 | { |
| Line 133... | Line 136... | ||
| 133 | case CAN_MODULE_CMD_PHYSICAL_PWM: |
136 | case CAN_MODULE_CMD_PHYSICAL_PWM: |
| 134 | if (rxMsg->Length == 3) { |
137 | if (rxMsg->Length == 3) { |
| 135 | channel = rxMsg->Data[0]; |
138 | channel = rxMsg->Data[0]; |
| 136 | setValue[channel] = (rxMsg->Data[1]<<8)+(rxMsg->Data[2]); |
139 | setValue[channel] = (rxMsg->Data[1]<<8)+(rxMsg->Data[2]); |
| 137 | } |
140 | } |
| 138 | - | ||
| 139 | break; |
141 | break; |
| 140 | } |
142 | } |
| 141 | } |
143 | } |
| 142 | } |
144 | } |
| 143 | 145 | ||