Exemple #1
0
int main(void) {

    WordVal src_addr_init = {SRC_ADDR};
    WordVal src_pan_id_init = {SRC_PAN_ID};
    WordVal dst_addr_init = {DST_ADDR};

    SetupClock();
    SwitchClocks();
    SetupPorts();
    batSetup();

    swatchSetup();
    radioInit(src_addr_init, src_pan_id_init, RXPQ_MAX_SIZE, TXPQ_MAX_SIZE);
	radioSetChannel(MY_CHAN); //Set to my channel
    macSetDestAddr(dst_addr_init);

    dfmemSetup();
	unsigned char memsize;
	memsize = dfmemGetChipSize();
    xlSetup();
    gyroSetup();
    mcSetup();
    cmdSetup();
    //senSetup();
	adcSetup();
    pidSetup();
    steeringSetup();
	
    //radioReadTrxId(id);

    LED_RED = 1;
    LED_BLUE = 0;
	LED_YELLOW = 0;

	//while(1);

    if(phyGetState() == 0x16)  { LED_GREEN = 1; }

    //print("Ready");	

	//readDFMemBySample(5);

    while(1) {
     	cmdHandleRadioRxBuffer();

		//Simple idle ; reduces idle current to 70 mA
        // TODO (abuchan, apullin, fgb) : Idle() causes unexpected behavior
		//if(radioIsRxQueueEmpty()){
		//	Idle();
		//}

    }
}
Exemple #2
0
// Figures out memory geometry by querying its size
static void dfmemGeometrySetup(void)
{
    unsigned char size;
    size = dfmemGetChipSize();

    switch(size){
        case DFMEM_8MBIT:
            dfmem_geo.max_sector        = FLASH_8MBIT_MAX_SECTOR;
            dfmem_geo.max_pages         = FLASH_8MBIT_MAX_PAGES;
            dfmem_geo.buffer_size        = FLASH_8MBIT_BUFFERSIZE;
            dfmem_geo.bytes_per_page    = FLASH_8MBIT_BYTES_PER_PAGE;
            dfmem_geo.pages_per_block   = FLASH_8MBIT_PAGES_PER_BLOCK;
            dfmem_geo.blocks_per_sector = FLASH_8MBIT_BLOCKS_PER_SECTOR;
            dfmem_geo.pages_per_sector  = FLASH_8MBIT_PAGES_PER_SECTOR;
            dfmem_geo.byte_address_bits = FLASH_8MBIT_BYTE_ADDRESS_BITS;
            break;
        case DFMEM_16MBIT:
            dfmem_geo.max_sector        = FLASH_16MBIT_MAX_SECTOR;
            dfmem_geo.max_pages         = FLASH_16MBIT_MAX_PAGES;
            dfmem_geo.buffer_size        = FLASH_16MBIT_BUFFERSIZE;
            dfmem_geo.bytes_per_page    = FLASH_16MBIT_BYTES_PER_PAGE;
            dfmem_geo.pages_per_block   = FLASH_16MBIT_PAGES_PER_BLOCK;
            dfmem_geo.blocks_per_sector = FLASH_16MBIT_BLOCKS_PER_SECTOR;
            dfmem_geo.pages_per_sector  = FLASH_16MBIT_PAGES_PER_SECTOR;
            dfmem_geo.byte_address_bits = FLASH_16MBIT_BYTE_ADDRESS_BITS;
            break;
        case DFMEM_32MBIT:
            dfmem_geo.max_sector        = FLASH_32MBIT_MAX_SECTOR;
            dfmem_geo.max_pages         = FLASH_32MBIT_MAX_PAGES;
            dfmem_geo.buffer_size        = FLASH_32MBIT_BUFFERSIZE;
            dfmem_geo.bytes_per_page    = FLASH_32MBIT_BYTES_PER_PAGE;
            dfmem_geo.pages_per_block   = FLASH_32MBIT_PAGES_PER_BLOCK;
            dfmem_geo.blocks_per_sector = FLASH_32MBIT_BLOCKS_PER_SECTOR;
            dfmem_geo.pages_per_sector  = FLASH_32MBIT_PAGES_PER_SECTOR;
            dfmem_geo.byte_address_bits = FLASH_32MBIT_BYTE_ADDRESS_BITS;
            break;
        case DFMEM_64MBIT:
            dfmem_geo.max_sector        = FLASH_64MBIT_MAX_SECTOR;
            dfmem_geo.max_pages         = FLASH_64MBIT_MAX_PAGES;
            dfmem_geo.buffer_size        = FLASH_64MBIT_BUFFERSIZE;
            dfmem_geo.bytes_per_page    = FLASH_64MBIT_BYTES_PER_PAGE;
            dfmem_geo.pages_per_block   = FLASH_64MBIT_PAGES_PER_BLOCK;
            dfmem_geo.blocks_per_sector = FLASH_64MBIT_BLOCKS_PER_SECTOR;
            dfmem_geo.pages_per_sector  = FLASH_64MBIT_PAGES_PER_SECTOR;
            dfmem_geo.byte_address_bits = FLASH_64MBIT_BYTE_ADDRESS_BITS;
            break;
        default:
            // TODO (apullin, fgb) : Do something. Probably communicate back with user.
            break;
    }
}