¿Cómo leo la entrada digital en la serie atmega y la uso en dicho código?

-1

si (pin1 del puerto c alto) {realizar una tarea

considerando que

  1. los pin 5 y 6 están conectados a un rtc a través de i2c y el pin 0-3 es una entrada de lm35 (para la que pude escribir un código): p
  2. utilizando atmega8
  3. He configurado el ddrc con el siguiente comando > ddrc = ddrc & 0xf0
pregunta Raj

1 respuesta

0

Nadie está mordiendo, así que lo tomaré. Sin embargo, este concepto está documentado bastante a fondo en línea. Además, leer la hoja de datos del ATmega8 en el futuro le ayudará a comprender en gran medida el MCU en general. Digikey es un gran recurso para hojas de datos, fácilmente encontré el de ATmega8 aquí:

Hoja de datos de ATmega8

Use el registro PINx para leer los pines del puerto "x". DDRx establece la dirección del pin (se lee 0, se emite 1).

Por ejemplo, para leer el pin PA5, configuración con DDRA:

DDRA &= 0xDF;        //Mask 0xDF onto DDRA if you don't want to screw up the rest of the bits
                    //0xDF = 0b11011111

Aquí hay algunas técnicas, pero la PINA es de donde quieres leer. Si tengo un resistor pullup conectado a mi PA5, entonces LOW si el botón presiona (o cualquiera que sea su aplicación)

if(0x00 == (PINA & (1 <<  PA5))){
  /*Pin LOW, execute code*/   
}

Básicamente eres ANDing PINA con 0x20. Si se presiona el botón, PINA será: 0bXX0XXXXX (X para algunos bits porque no importa lo que sean), por lo que puede ver que PA5 es 0. Este ANDed con 0x20 hace 0x00, por lo tanto, la verificación.

    
respondido por el Nick Williams

Lea otras preguntas en las etiquetas