avr Namespace Reference

AVR Access Module. More...


Functions

def portA


Detailed Description

AVR Access Module.

Provides generic access to the AVR microcontroller

USAGE

 import avr
 a = avr.portA()
 avr.portA(42)


Function Documentation

def avr::portA (   a  ) 

__NATIVE__
pPmObj_t pa;
uint8_t ddra;
PmReturn_t retval = PM_RET_OK;

/* Store port A data direction register */
ddra = DDRA;

switch (NATIVE_GET_NUM_ARGS())
{
    /* If no argument is present, return PORTA */
    case 0:

        /* Set port A as all inputs so it can be read */
        DDRA = 0x00;

        /* Read port A and create a Python integer from its value */
        retval = int_new((int32_t)PORTA, &pa);

        /* Return the integer on the stack */
        NATIVE_SET_TOS(pa);
        break;

    /* If one argument is present, set port A to that value */
    case 1:
        pa = NATIVE_GET_LOCAL(0);

        /* If the arg is not an integer, raise TypeError */
        if (OBJ_GET_TYPE(pa) != OBJ_TYPE_INT)
        {
            PM_RAISE(retval, PM_RET_EX_TYPE);
            break;
        }

        /* Otherwise set PORTA to the low byte of the integer value */
        PORTA = ((pPmInt_t)pa)->val;
        break;

    /* If an invalid number of args are present, raise TypeError */
    default:
        PM_RAISE(retval, PM_RET_EX_TYPE);
        break;
}

/* Restore port A data direction register */
DDRA = ddra;
return retval;


Generated on Wed Feb 24 13:37:03 2010 for Python-on-a-chip by  doxygen 1.5.9