Revision 4172c48d source/DW1000/v1/deca_instance_common_v1.c
| source/DW1000/v1/deca_instance_common_v1.c | ||
|---|---|---|
| 432 | 432 |
// function to initialise instance structures |
| 433 | 433 |
// |
| 434 | 434 |
// Returns 0 on success and -1 on error |
| 435 |
//int instance_init(void){ // TODO
|
|
| 436 | 435 |
int instance_init(DW1000Driver* drv){
|
| 437 | 436 |
int instance = 0 ; |
| 438 | 437 |
int i; |
| ... | ... | |
| 513 | 512 |
// |
| 514 | 513 |
// function to allow application configuration be passed into instance and affect underlying device operation |
| 515 | 514 |
// |
| 516 |
void instance_config(instanceConfig_t *config, sfConfig_t *sfConfig){
|
|
| 515 |
void instance_config(instanceConfig_t *config, sfConfig_t *sfConfig, DW1000Driver* drv){
|
|
| 517 | 516 |
int instance = 0 ; |
| 518 | 517 |
uint32_t power = 0; |
| 519 | 518 |
uint8_t otprev ; |
| ... | ... | |
| 598 | 597 |
|
| 599 | 598 |
if(config->preambleLen == DWT_PLEN_64) { //if preamble length is 64
|
| 600 | 599 |
//reduce SPI to < 3MHz |
| 601 |
setHighSpeed_SPI(FALSE); //TODO: workaround using flag to change speed
|
|
| 600 |
setHighSpeed_SPI(FALSE, drv);
|
|
| 602 | 601 |
dwt_loadopsettabfromotp(0); |
| 603 | 602 |
//increase SPI to max |
| 604 |
setHighSpeed_SPI(TRUE); //TODO: workaround using flag to change speed
|
|
| 603 |
setHighSpeed_SPI(TRUE, drv);
|
|
| 605 | 604 |
} |
| 606 | 605 |
|
| 607 | 606 |
instancesettagsleepdelay(sfConfig->pollSleepDly); //set the Tag sleep time |
| ... | ... | |
| 1647 | 1646 |
void instance_close(void){
|
| 1648 | 1647 |
//wake up device from low power mode |
| 1649 | 1648 |
//NOTE - in the ARM code just drop chip select for 200us |
| 1650 |
port_SPIx_clear_chip_select(); //CS low
|
|
| 1649 |
clear_SPI_chip_select(); //CS low
|
|
| 1651 | 1650 |
Sleep(1); //200 us to wake up then waits 5ms for DW1000 XTAL to stabilise |
| 1652 |
port_SPIx_set_chip_select(); //CS high
|
|
| 1651 |
set_SPI_chip_select(); //CS high
|
|
| 1653 | 1652 |
Sleep(5); |
| 1654 | 1653 |
dwt_entersleepaftertx(0); // clear the "enter deep sleep after tx" bit |
| 1655 | 1654 |
dwt_setinterrupt(0xFFFFFFFF, 0); //don't allow any interrupts |
Also available in: Unified diff