Styra pinnar individuellt på en port (AVR) ?
Postat: 15 mars 2008, 11:28:25
Att sätta eller nolla en enstaka pinne på en port är ju enkelt via kommandona SBI & CBI.
Men hur gör jag för att sätta t.e.x 4 pinnar samtidigt på en port, men dom andra 4a får inte röras då dessa är kopplade till en helt annan funktion?.
Måste man ORa värderna, eller finns det något enklare sätt?.
t.e.x
Ldi r16, 0bxx1111xx
Out Portd
Där då (x) lämnas orört.
Exemplet är ju bara ett önsketänkande, vilket givetvis inte fungerar
Anledningen till detta, är att jag har skrivit ett program till en Mega16, men nu vill köra koden på en Attiny2313 då den har exakt antal i/o pinnar som jag behöver, vilket gör Mega16 överflödig till projektet. Men det förutsätter då att man kan på ett enkelt sätt kan dela portarna till flera funktioner.
Men hur gör jag för att sätta t.e.x 4 pinnar samtidigt på en port, men dom andra 4a får inte röras då dessa är kopplade till en helt annan funktion?.
Måste man ORa värderna, eller finns det något enklare sätt?.
t.e.x
Ldi r16, 0bxx1111xx
Out Portd
Där då (x) lämnas orört.
Exemplet är ju bara ett önsketänkande, vilket givetvis inte fungerar
Anledningen till detta, är att jag har skrivit ett program till en Mega16, men nu vill köra koden på en Attiny2313 då den har exakt antal i/o pinnar som jag behöver, vilket gör Mega16 överflödig till projektet. Men det förutsätter då att man kan på ett enkelt sätt kan dela portarna till flera funktioner.