@@ -100,13 +100,8 @@ void TWI_ConfigureMaster( Twi* pTwi, uint32_t dwTwCk, uint32_t dwMCk )
100100
101101 /* SVEN: TWI Slave Mode Enabled */
102102 pTwi -> TWI_CR = TWI_CR_SVEN ;
103- /* Reset the TWI */
104- pTwi -> TWI_CR = TWI_CR_SWRST ;
105- pTwi -> TWI_RHR ;
106103
107- /* TWI Slave Mode Disabled, TWI Master Mode Disabled. */
108- pTwi -> TWI_CR = TWI_CR_SVDIS ;
109- pTwi -> TWI_CR = TWI_CR_MSDIS ;
104+ TWI_Disable (pTwi );
110105
111106 /* Set master mode */
112107 pTwi -> TWI_CR = TWI_CR_MSEN ;
@@ -156,15 +151,7 @@ void TWI_ConfigureSlave(Twi *pTwi, uint8_t slaveAddress)
156151{
157152 uint32_t i ;
158153
159- /* TWI software reset */
160- pTwi -> TWI_CR = TWI_CR_SWRST ;
161- pTwi -> TWI_RHR ;
162-
163- /* Wait at least 10 ms */
164- for (i = 0 ; i < 1000000 ; i ++ );
165-
166- /* TWI Slave Mode Disabled, TWI Master Mode Disabled*/
167- pTwi -> TWI_CR = TWI_CR_SVDIS | TWI_CR_MSDIS ;
154+ TWI_Disable (pTwi );
168155
169156 /* Configure slave address. */
170157 pTwi -> TWI_SMR = 0 ;
@@ -178,6 +165,27 @@ void TWI_ConfigureSlave(Twi *pTwi, uint8_t slaveAddress)
178165 assert ( (pTwi -> TWI_CR & TWI_CR_SVDIS )!= TWI_CR_SVDIS ) ;
179166}
180167
168+ /**
169+ * \brief Disables the TWI.
170+ * \param pTwi Pointer to an Twi instance.
171+ */
172+ void TWI_Disable (Twi * pTwi )
173+ {
174+ assert ( pTwi ) ;
175+
176+ uint32_t i ;
177+
178+ /* TWI software reset */
179+ pTwi -> TWI_CR = TWI_CR_SWRST ;
180+ pTwi -> TWI_RHR ;
181+
182+ /* Wait at least 10 ms */
183+ for (i = 0 ; i < 1000000 ; i ++ );
184+
185+ /* TWI Slave Mode Disabled, TWI Master Mode Disabled*/
186+ pTwi -> TWI_CR = TWI_CR_SVDIS | TWI_CR_MSDIS ;
187+ }
188+
181189/**
182190 * \brief Sends a STOP condition on the TWI.
183191 * \param pTwi Pointer to an Twi instance.
0 commit comments