@@ -122,24 +122,24 @@ static void can_irq(CANName name, int id)
122
122
/* Error Status interrupt */
123
123
/**************************/
124
124
if (can -> STATUS & CAN_STATUS_EWARN_Msk ) {
125
- can0_irq_handler (can_irq_ids [id ], IRQ_ERROR );
125
+ can0_irq_handler (can_irq_ids [id ], IRQ_ERROR );
126
126
}
127
127
128
128
if (can -> STATUS & CAN_STATUS_BOFF_Msk ) {
129
- can0_irq_handler (can_irq_ids [id ], IRQ_BUS );
129
+ can0_irq_handler (can_irq_ids [id ], IRQ_BUS );
130
130
}
131
131
} else if (u8IIDRstatus != 0 ) {
132
132
133
133
//CAN_MsgInterrupt(can, u8IIDRstatus);
134
134
135
- can0_irq_handler (can_irq_ids [id ], IRQ_OVERRUN );
136
-
135
+ can0_irq_handler (can_irq_ids [id ], IRQ_OVERRUN );
136
+
137
137
CAN_CLR_INT_PENDING_BIT (can , ((can -> IIDR ) - 1 )); /* Clear Interrupt Pending */
138
138
139
139
} else if (can -> WU_STATUS == 1 ) {
140
140
141
141
can -> WU_STATUS = 0 ; /* Write '0' to clear */
142
- can0_irq_handler (can_irq_ids [id ], IRQ_WAKEUP );
142
+ can0_irq_handler (can_irq_ids [id ], IRQ_WAKEUP );
143
143
}
144
144
}
145
145
@@ -150,157 +150,157 @@ void CAN0_IRQHandler(void)
150
150
151
151
void can_irq_init (can_t * obj , can_irq_handler handler , uint32_t id )
152
152
{
153
- can0_irq_handler = handler ;
154
- can_irq_ids [obj -> index ] = id ;
153
+ can0_irq_handler = handler ;
154
+ can_irq_ids [obj -> index ] = id ;
155
155
}
156
156
157
157
void can_irq_free (can_t * obj )
158
158
{
159
- CAN_DisableInt ((CAN_T * )obj -> can , (CAN_CON_IE_Msk |CAN_CON_SIE_Msk |CAN_CON_EIE_Msk ));
160
-
161
- can_irq_ids [obj -> index ] = 0 ;
162
-
163
- NVIC_DisableIRQ (CAN0_IRQn );
159
+ CAN_DisableInt ((CAN_T * )obj -> can , (CAN_CON_IE_Msk |CAN_CON_SIE_Msk |CAN_CON_EIE_Msk ));
160
+
161
+ can_irq_ids [obj -> index ] = 0 ;
162
+
163
+ NVIC_DisableIRQ (CAN0_IRQn );
164
164
}
165
165
166
166
void can_irq_set (can_t * obj , CanIrqType irq , uint32_t enable )
167
167
{
168
-
169
- CAN_EnterInitMode ((CAN_T * )obj -> can , ((enable != 0 )? CAN_CON_IE_Msk :0 ) );
170
-
168
+
169
+ CAN_EnterInitMode ((CAN_T * )obj -> can , ((enable != 0 )? CAN_CON_IE_Msk :0 ) );
170
+
171
171
// ((CAN_T *)(obj->can))->CON = (((CAN_T *)(obj->can))->CON ) | ((enable != 0 )? CAN_CON_IE_Msk :0);
172
-
173
- switch (irq )
174
- {
175
- case IRQ_ERROR :
176
- //case IRQ_PASSIVE:
177
- //case IRQ_ARB:
178
- ((CAN_T * )(obj -> can ))-> CON = (((CAN_T * )(obj -> can ))-> CON ) |CAN_CON_EIE_Msk ;
179
- break ;
180
-
181
- case IRQ_RX :
182
- case IRQ_TX :
183
- case IRQ_BUS :
184
- case IRQ_OVERRUN :
185
- case IRQ_WAKEUP :
186
- ((CAN_T * )(obj -> can ))-> CON = (((CAN_T * )(obj -> can ))-> CON ) |CAN_CON_SIE_Msk ;
187
- break ;
188
-
189
- default :
190
- break ;
191
-
192
- }
172
+
173
+ switch (irq )
174
+ {
175
+ case IRQ_ERROR :
176
+ //case IRQ_PASSIVE:
177
+ //case IRQ_ARB:
178
+ ((CAN_T * )(obj -> can ))-> CON = (((CAN_T * )(obj -> can ))-> CON ) |CAN_CON_EIE_Msk ;
179
+ break ;
180
+
181
+ case IRQ_RX :
182
+ case IRQ_TX :
183
+ case IRQ_BUS :
184
+ case IRQ_OVERRUN :
185
+ case IRQ_WAKEUP :
186
+ ((CAN_T * )(obj -> can ))-> CON = (((CAN_T * )(obj -> can ))-> CON ) |CAN_CON_SIE_Msk ;
187
+ break ;
188
+
189
+ default :
190
+ break ;
191
+
192
+ }
193
193
194
194
CAN_LeaveInitMode ((CAN_T * )obj -> can );
195
-
196
- NVIC_SetVector (CAN0_IRQn , (uint32_t )& CAN0_IRQHandler );
197
- NVIC_EnableIRQ (CAN0_IRQn );
198
-
195
+
196
+ NVIC_SetVector (CAN0_IRQn , (uint32_t )& CAN0_IRQHandler );
197
+ NVIC_EnableIRQ (CAN0_IRQn );
198
+
199
199
}
200
200
201
201
int can_write (can_t * obj , CAN_Message msg , int cc )
202
202
{
203
- STR_CANMSG_T CMsg ;
204
-
205
- CMsg .IdType = (uint32_t )msg .format ;
206
- CMsg .FrameType = (uint32_t )!msg .type ;
207
- CMsg .Id = msg .id ;
208
- CMsg .DLC = msg .len ;
209
- memcpy ((void * )& CMsg .Data [0 ],(const void * )& msg .data [0 ], (unsigned int )8 );
203
+ STR_CANMSG_T CMsg ;
204
+
205
+ CMsg .IdType = (uint32_t )msg .format ;
206
+ CMsg .FrameType = (uint32_t )!msg .type ;
207
+ CMsg .Id = msg .id ;
208
+ CMsg .DLC = msg .len ;
209
+ memcpy ((void * )& CMsg .Data [0 ],(const void * )& msg .data [0 ], (unsigned int )8 );
210
210
211
- return CAN_Transmit ((CAN_T * )(obj -> can ), cc , & CMsg );
211
+ return CAN_Transmit ((CAN_T * )(obj -> can ), cc , & CMsg );
212
212
}
213
213
214
214
int can_read (can_t * obj , CAN_Message * msg , int handle )
215
215
{
216
- STR_CANMSG_T CMsg ;
216
+ STR_CANMSG_T CMsg ;
217
217
218
- if (!CAN_Receive ((CAN_T * )(obj -> can ), handle , & CMsg ))
219
- return 0 ;
220
-
221
- msg -> format = (CANFormat )CMsg .IdType ;
222
- msg -> type = (CANType )!CMsg .FrameType ;
223
- msg -> id = CMsg .Id ;
224
- msg -> len = CMsg .DLC ;
225
- memcpy (& msg -> data [0 ], & CMsg .Data [0 ], 8 );
226
-
227
- return 1 ;
218
+ if (!CAN_Receive ((CAN_T * )(obj -> can ), handle , & CMsg ))
219
+ return 0 ;
220
+
221
+ msg -> format = (CANFormat )CMsg .IdType ;
222
+ msg -> type = (CANType )!CMsg .FrameType ;
223
+ msg -> id = CMsg .Id ;
224
+ msg -> len = CMsg .DLC ;
225
+ memcpy (& msg -> data [0 ], & CMsg .Data [0 ], 8 );
226
+
227
+ return 1 ;
228
228
}
229
229
230
230
int can_mode (can_t * obj , CanMode mode )
231
231
{
232
- int success = 0 ;
233
- switch (mode )
234
- {
235
- case MODE_RESET :
236
- CAN_LeaveTestMode ((CAN_T * )obj -> can );
237
- success = 1 ;
238
- break ;
239
-
240
- case MODE_NORMAL :
241
- CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_BASIC_Msk );
242
- success = 1 ;
243
- break ;
244
-
245
- case MODE_SILENT :
246
- CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_SILENT_Msk );
247
- success = 1 ;
248
- break ;
249
-
250
- case MODE_TEST_LOCAL :
251
- case MODE_TEST_GLOBAL :
252
- CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_LBACK_Msk );
253
- success = 1 ;
254
- break ;
255
-
256
- case MODE_TEST_SILENT :
257
- CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_SILENT_Msk | CAN_TEST_LBACK_Msk );
258
- success = 1 ;
259
- break ;
260
-
261
- default :
262
- success = 0 ;
263
- break ;
264
-
265
- }
266
-
267
-
268
- return success ;
232
+ int success = 0 ;
233
+ switch (mode )
234
+ {
235
+ case MODE_RESET :
236
+ CAN_LeaveTestMode ((CAN_T * )obj -> can );
237
+ success = 1 ;
238
+ break ;
239
+
240
+ case MODE_NORMAL :
241
+ CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_BASIC_Msk );
242
+ success = 1 ;
243
+ break ;
244
+
245
+ case MODE_SILENT :
246
+ CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_SILENT_Msk );
247
+ success = 1 ;
248
+ break ;
249
+
250
+ case MODE_TEST_LOCAL :
251
+ case MODE_TEST_GLOBAL :
252
+ CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_LBACK_Msk );
253
+ success = 1 ;
254
+ break ;
255
+
256
+ case MODE_TEST_SILENT :
257
+ CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_SILENT_Msk | CAN_TEST_LBACK_Msk );
258
+ success = 1 ;
259
+ break ;
260
+
261
+ default :
262
+ success = 0 ;
263
+ break ;
264
+
265
+ }
266
+
267
+
268
+ return success ;
269
269
}
270
270
271
271
int can_filter (can_t * obj , uint32_t id , uint32_t mask , CANFormat format , int32_t handle )
272
272
{
273
- return CAN_SetRxMsg ((CAN_T * )(obj -> can ), handle , (uint32_t )format , id );
273
+ return CAN_SetRxMsg ((CAN_T * )(obj -> can ), handle , (uint32_t )format , id );
274
274
}
275
275
276
276
277
277
void can_reset (can_t * obj )
278
278
{
279
- const struct nu_modinit_s * modinit = get_modinit (obj -> can , can_modinit_tab );
280
-
281
- MBED_ASSERT (modinit != NULL );
279
+ const struct nu_modinit_s * modinit = get_modinit (obj -> can , can_modinit_tab );
280
+
281
+ MBED_ASSERT (modinit != NULL );
282
282
MBED_ASSERT (modinit -> modname == obj -> can );
283
283
284
284
// Reset this module
285
285
SYS_ResetModule (modinit -> rsetidx );
286
-
286
+
287
287
}
288
288
289
289
unsigned char can_rderror (can_t * obj )
290
290
{
291
- CAN_T * can = (CAN_T * )(obj -> can );
292
- return ((can -> ERR >>8 )& 0xFF );
291
+ CAN_T * can = (CAN_T * )(obj -> can );
292
+ return ((can -> ERR >>8 )& 0xFF );
293
293
}
294
294
295
295
unsigned char can_tderror (can_t * obj )
296
296
{
297
- CAN_T * can = (CAN_T * )(obj -> can );
298
- return ((can -> ERR )& 0xFF );
297
+ CAN_T * can = (CAN_T * )(obj -> can );
298
+ return ((can -> ERR )& 0xFF );
299
299
}
300
300
301
301
void can_monitor (can_t * obj , int silent )
302
302
{
303
- CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_SILENT_Msk );
303
+ CAN_EnterTestMode ((CAN_T * )(obj -> can ), CAN_TEST_SILENT_Msk );
304
304
}
305
305
306
- #endif // DEVICE_CAN
306
+ #endif // DEVICE_CAN
0 commit comments