Port Beispiel (AVR32Bit)

 

Alle drei Programmbeispiele lassen LED1 leuchten solange Taster T1 gedrückt wird. Die Beispiele unterscheiden sich in der Adressierung der Port Namen. Wenn der Taster nicht gedrückt wird, so wird vom Port eine "1" gelesen, da auf dem Applicationboard jeder Taster mit einem Pull-Up Widerstand verbunden ist.

 
// Beispiel mit Function Name defines
void main(void)
{
    Port_Attribute(PORT_LED1, PORT_ATTR_OUTPUT | PORT_ATTR_INIT_LOW);
    Port_Attribute(PORT_T1, PORT_ATTR_INPUT);
 
    while(true)  // Endlosschleife
    {
        if(Port_ReadBit(PORT_T1))
        {
            Port_WriteBit(PORT_LED1, PORT_OFF);
        }
        else
        {
            Port_WriteBit(PORT_LED1, PORT_ON);
        }
    }
}

 

// Beispiel mit Unit Name defines
void main(void)
{
    Port_Attribute(P48, PORT_ATTR_OUTPUT | PORT_ATTR_INIT_LOW);
    Port_Attribute(P41, PORT_ATTR_INPUT);
 
    while(true)  // Endlosschleife
    {
        if(Port_ReadBit(P41))
        {
            Port_WriteBit(P48, PORT_OFF);
        }
        else
        {
            Port_WriteBit(P48, PORT_ON);
        }
    }
}

 

// Beispiel mit AVR32 Portname defines
void main(void)
{
    Port_Attribute(PC23, PORT_ATTR_OUTPUT | PORT_ATTR_INIT_LOW);
    Port_Attribute(PC20, PORT_ATTR_INPUT);
 
    while(true)  // Endlosschleife
    {
        if(Port_ReadBit(PC20))
        {
            Port_WriteBit(PC23, PORT_OFF);
        }
        else
        {
            Port_WriteBit(PC23, PORT_ON);
        }
    }
}