¿Cómo acceder directamente al Pin para leer o escribir datos? Si quiero escribir datos en el pin6 ¿cómo puedo hacerlo? O si quiero leer datos de un pin específico.
Respuesta
¿Demasiados anuncios?En este punto asumo que estás usando C. Te sugiero que leas las notas de aplicación de Atmel AVR1000, AVR1313 y por supuesto la hoja de datos del XMEGA.
El acceso a puertos para XMEGA es bastante fácil en comparación con los tipos ATMEGA normales, ya que hay registros dedicados para configurar/borrar/obtener/activar pines IO. Además, hay máscaras de bits predefinidas (sufijo _bm), por lo que no es necesario realizar el cambio de bits en la mayoría de los casos. Ten en cuenta que todavía tienes que realizar la configuración inicial de puertos/pines. Tomemos como ejemplo el pin 6 del puerto A.
PORTA.OUTSET = PIN6_bm; // set to high
PORTA.OUTCLR = PIN6_bm; // set to low
PORTA.OUTTGL = PIN6_bm; // toggle state
// Get state of PA6 configured as OUTPUT as boolean:
bool pinState = (PORTA.OUT & PIN6_bm) == 0 ? false : true;
// Get state of PA6 configured as INPUT as boolean:
bool pinState = (PORTA.IN & PIN6_bm) == 0 ? false : true;
Quizá esto ayude a empezar.