I need to use PA 0,1,2,3 for operation of a small stepper motor (via a ULN2803A) controller by I2C
The I2C SCL and SDA are on PA 4 and PA6
Obviously I do not want to upset their status as DI/DO
So I have mapped PA 0 to 3 as outputs with
DDRA = DDRA | 0b00001111
My problem is that I then want to cycle the outputs to the stepper using an array of steps
ie
byte Step1 = 0x9; //0b 0000 1001
byte Step2 = 0xC; //0b 0000 1100
byte Step3 = 0x6; //0b 0000 0110
byte Step4 = 0x3; //0b 0000 0011
byte UnitStep[4]= {UnitStep1,UnitStep2,UnitStep3,UnitStep4};
Normally I would do this with successive calls to the array
PORTA = Step*;*
However this call also sets the state of the PA4,5,6,7, disrupting the I2C
I have tried several ways including PORTA =PORTA|Step without success.
Any suggestions gratefully received