@@ -245,6 +245,40 @@ void TC6Regs_ToggleDio_A0(TC6_t *pTC6)
245
245
}
246
246
}
247
247
248
+ static bool is_dio_a1_op_done = false ;
249
+ void TC6_Dio_A1_Callback (TC6_t *pInst, bool success, uint32_t addr, uint32_t value, void *pTag, void *pGlobalTag)
250
+ {
251
+ is_dio_a1_op_done = true ;
252
+ }
253
+
254
+ void TC6Regs_EnableDio_A1 (TC6_t *pTC6)
255
+ {
256
+ TC6Reg_t * pReg = GetContext (pTC6);
257
+
258
+ /* Configure as output, PADCTRL = 0x0088. */
259
+ uint32_t reg_val = to_integer (PADCTRL_A1SEL::EVENT_GENERATOR_1);
260
+ uint32_t reg_mask = PADCTRL_A1SEL_MASK;
261
+
262
+ is_dio_a1_op_done = false ;
263
+ while (!is_dio_a1_op_done && !TC6_ReadModifyWriteRegister (pReg->pTC6 , 0x000A0088 , reg_val, reg_mask, CONTROL_PROTECTION, TC6_Dio_A0_Callback, NULL )) {
264
+ TC6_Service (pReg->pTC6 , true );
265
+ }
266
+ }
267
+
268
+ void TC6Regs_ToggleDio_A1 (TC6_t *pTC6)
269
+ {
270
+ TC6Reg_t * pReg = GetContext (pTC6);
271
+
272
+ /* Toggle output, EG1CTL = 0x022C. */
273
+ uint32_t reg_val = bm (EG1CTL::START);
274
+ uint32_t reg_mask = bm (EG1CTL::START);;
275
+
276
+ is_dio_a1_op_done = false ;
277
+ while (!is_dio_a1_op_done && !TC6_ReadModifyWriteRegister (pReg->pTC6 , 0x000A022C , reg_val, reg_mask, CONTROL_PROTECTION, TC6_Dio_A0_Callback, NULL )) {
278
+ TC6_Service (pReg->pTC6 , true );
279
+ }
280
+ }
281
+
248
282
uint8_t TC6Regs_GetChipRevision (TC6_t *pTC6)
249
283
{
250
284
TC6Reg_t *pReg = GetContext (pTC6);
0 commit comments