Subversion Repositories HomeAutomation

Rev

Rev 1453 | Rev 1459 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1453 Rev 1454
Line 39... Line 39...
39
      eeprom_write_byte_crc(EEDATA.x, 0xAB, WITHOUT_CRC);
39
      eeprom_write_byte_crc(EEDATA.x, 0xAB, WITHOUT_CRC);
40
      eeprom_write_word_crc(EEDATA16.y, 0x1234, WITHOUT_CRC);
40
      eeprom_write_word_crc(EEDATA16.y, 0x1234, WITHOUT_CRC);
41
      EEDATA_UPDATE_CRC;
41
      EEDATA_UPDATE_CRC;
42
    }
42
    }
43
#endif
43
#endif
44
    ///TODO: Initialize hardware etc here
44
    // default baudrate
45
    uart_init(UART_BAUD_SELECT(baudRate, F_CPU));
45
    uart_init(UART_BAUD_SELECT(baudRate, F_CPU));
-
 
46
    // configure control pins
46
    gpio_set_out(sns_Serial_RXEN);
47
    gpio_set_out(sns_Serial_RXEN);
47
    gpio_set_out(sns_Serial_TXEN);
48
    gpio_set_out(sns_Serial_TXEN);
48
    gpio_set_pin(sns_Serial_RXEN);
49
    gpio_set_out(sns_Serial_ON);
-
 
50
    gpio_set_out(sns_Serial_485_232);
-
 
51
    //default to loopback mode until config command received
49
    gpio_set_pin(sns_Serial_TXEN);
52
    gpio_clr_pin(sns_Serial_ON);
-
 
53
    gpio_clr_pin(sns_Serial_485_232);
50
 
54
 
51
    // to use PCINt lib, call this function: (the callback function look as a timer callback function)
55
    // to use PCINt lib, call this function: (the callback function look as a timer callback function)
52
    // Pcint_SetCallbackPin(sns_Serial_PCINT, EXP_C , &sns_Serial_pcint_callback);
56
    // Pcint_SetCallbackPin(sns_Serial_PCINT, EXP_C , &sns_Serial_pcint_callback);
53
 
57
 
54
}
58
}
Line 110... Line 114...
110
                break;
114
                break;
111
            case CAN_MODULE_CMD_SERIAL_SERIALCONFIG:
115
            case CAN_MODULE_CMD_SERIAL_SERIALCONFIG:
112
                baudRate = ((uint16_t)rxMsg->Data[0] << 0) | ((uint16_t)rxMsg->Data[1] << 8);
116
                baudRate = ((uint16_t)rxMsg->Data[0] << 0) | ((uint16_t)rxMsg->Data[1] << 8);
113
                format = (snsSerialPhyFormat_t)rxMsg->Data[2];
117
                format = (snsSerialPhyFormat_t)rxMsg->Data[2];
114
                uart_init(UART_BAUD_SELECT(baudRate, F_CPU));
118
                uart_init(UART_BAUD_SELECT(baudRate, F_CPU));
-
 
119
                if (format == CAN_MODULE_ENUM_SERIAL_SERIALCONFIG_PHYSICALFORMAT_RS232)
-
 
120
                {
-
 
121
                    gpio_clr_pin(sns_Serial_485_CONNECT);   // disable RS485_CONNECT
-
 
122
                    gpio_clr_pin(sns_Serial_TERM_EN);       // disable termination
-
 
123
                    gpio_clr_pin(sns_Serial_485_232);       // RS232 mode
-
 
124
                    gpio_set_pin(sns_Serial_RXEN);          // enable RX
-
 
125
                    gpio_set_pin(sns_Serial_TXEN);          // enable TX
-
 
126
                    gpio_set_pin(sns_Serial_ON);            // enable charge pump
-
 
127
                }
-
 
128
                else if (format == CAN_MODULE_ENUM_SERIAL_SERIALCONFIG_PHYSICALFORMAT_RS485FULLDUPLEX)
-
 
129
                {
-
 
130
                    gpio_clr_pin(sns_Serial_485_CONNECT);   // disable RS485_CONNECT
-
 
131
                    gpio_clr_pin(sns_Serial_TERM_EN);       // disable termination
-
 
132
                    gpio_set_pin(sns_Serial_485_232);       // RS485 mode
-
 
133
                    gpio_set_pin(sns_Serial_RXEN);          // enable RX
-
 
134
                    gpio_set_pin(sns_Serial_TXEN);          // enable TX
-
 
135
                    gpio_set_pin(sns_Serial_ON);            // enable charge pump
-
 
136
                }
-
 
137
                else if (format == CAN_MODULE_ENUM_SERIAL_SERIALCONFIG_PHYSICALFORMAT_RS485HALFDUPLEX)
-
 
138
                {
-
 
139
                    gpio_set_pin(sns_Serial_485_CONNECT);   // enable RS485_CONNECT
-
 
140
                    gpio_clr_pin(sns_Serial_TERM_EN);       // disable termination
-
 
141
                    gpio_set_pin(sns_Serial_485_232);       // RS485 mode
-
 
142
                    gpio_set_pin(sns_Serial_RXEN);          // enable RX
-
 
143
                    gpio_clr_pin(sns_Serial_TXEN);          // disable TX
-
 
144
                    gpio_set_pin(sns_Serial_ON);            // enable charge pump
-
 
145
                }
-
 
146
                else if (format == CAN_MODULE_ENUM_SERIAL_SERIALCONFIG_PHYSICALFORMAT_RS485HALFDUPLEXWITHTERMINATION)
-
 
147
                {
-
 
148
                    gpio_set_pin(sns_Serial_485_CONNECT);   // enable RS485_CONNECT
-
 
149
                    gpio_set_pin(sns_Serial_TERM_EN);       // enable termination
-
 
150
                    gpio_set_pin(sns_Serial_485_232);       // RS485 mode
-
 
151
                    gpio_set_pin(sns_Serial_RXEN);          // enable RX
-
 
152
                    gpio_clr_pin(sns_Serial_TXEN);          // disable TX
-
 
153
                    gpio_set_pin(sns_Serial_ON);            // enable charge pump
-
 
154
                }
-
 
155
                else if (format == CAN_MODULE_ENUM_SERIAL_SERIALCONFIG_PHYSICALFORMAT_LOOPBACK)
-
 
156
                {
-
 
157
                    gpio_clr_pin(sns_Serial_485_CONNECT);   // disable RS485_CONNECT
-
 
158
                    gpio_clr_pin(sns_Serial_TERM_EN);       // disable termination
-
 
159
                    gpio_set_pin(sns_Serial_485_232);       // RS232 mode
-
 
160
                    gpio_set_pin(sns_Serial_RXEN);          // enable RX
-
 
161
                    gpio_set_pin(sns_Serial_TXEN);          // enable TX
-
 
162
                    gpio_clr_pin(sns_Serial_ON);            // disable charge pump (i.e. enable loopback)
-
 
163
                }
-
 
164
                else
-
 
165
                {
-
 
166
                    //invalid format
-
 
167
                }
115
                break;
168
                break;
116
        }
169
        }
117
    }
170
    }
118
}
171
}
119
 
172