• 大小: 17KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: ADAS10  心电  

资源简介

非常好用的ADAS1000初始化代码,压箱老底存货。用于多导心电,ADI方案。特别是十二导联心电方案应用

资源截图

代码片段和文件信息

#include “asf.h“
#include “ADAS1000.h“
#include “main.h“
#include “CommonType.h“

//uint8_t ecgdata[24];
static unsigned long frameSize   = 0; //ADAS1000 frame size in bytes
static unsigned long frameRate   = 0; //ADAS1000 frame rate
static unsigned long inactiveWordsNo = 0; //number of inactive words in a frame
//uint8_t Dummy_Buff[28]={0x40};
//uint8_t ECG_rBuff[28];
/* SPI clock setting (Hz). */
static uint32_t gs_ul_spi_clock = 5000000;

extern void Delay_ms(volatile uint32_t nTime);

static void configure_SPI2(void)
{

//引脚配置指定外设
ioport_set_port_peripheral_mode(IOPORT_PIOA PIO_PA6A_SPI2_MOSI|PIO_PA5A_SPI2_MISOIOPORT_MODE_MUX_A);//PIO_PA16A_SPI2_NPCS0|PIO_PA15A_SPI2_NPCS1
ioport_set_port_peripheral_mode(IOPORT_PIOAPIO_PA24B_SPI2_SPCKIOPORT_MODE_MUX_B);//clk
/* Get pointer to SPI master PDC register base */
// g_p_spim_pdc = spi_get_pdc_base(SPI2);
/* Enable the peripheral and set SPI mode. */
flexcom_enable(FLEXCOM2);
flexcom_set_opmode(FLEXCOM2 FLEXCOM_SPI);
// sysclk_enable_peripheral_clock(ID_FLEXCOM2);
spi_disable(SPI2);
spi_reset(SPI2);
// spi_set_lastxfer(SPI2);//设置最后一个数据传输完成后拉高NPCS。
spi_set_master_mode(SPI2);
spi_disable_mode_fault_detect(SPI2);//模式错误检测禁止
// spi_set_peripheral_chip_select_value(SPI2 SPI_CHIP_PCS);//0:PCS=x0,NPC0有效
spi_set_clock_polarity(SPI2 SPI_CHIP_SEL SPI_CLK_POLARITY);
spi_set_clock_phase(SPI2 SPI_CHIP_SEL SPI_CLK_PHASE);
spi_set_bits_per_transfer(SPI2 SPI_CHIP_SELSPI_CSR_BITS_8_BIT);
spi_set_baudrate_div(SPI2SPI_CHIP_SEL(sysclk_get_peripheral_hz()/gs_ul_spi_clock));//默认BRSRCCLK=0PERIPH_CLK
// spi_set_baudrate_div(SPI21(sysclk_get_peripheral_hz()/gs_ul_spi_clock));
// spi_set_transfer_delay(SPI2 SPI_CHIP_SEL SPI_DLYBSSPI_DLYBCT);
spi_enable(SPI2);

}


void ADAS1000_SPI_Write_Read_Bytes(uint8_t *wdata uint8_t *rdata uint16_t n ADAS1000Device device)
{
uint32_t timeout = SPI_TIMEOUT;
if(device == ADAS1000_MASTER)
{
ADAS1000_Master_Select();
}
else
{
ADAS1000_Slave_Select();
}
while (n--)
{
while (!(SPI2->SPI_SR & SPI_SR_TDRE))
{
if (!timeout--)
return ;
}
SPI2->SPI_TDR = *wdata;
/* Wait transfer done. */
while ((SPI2->SPI_SR & SPI_SR_RDRF) == 0);
*rdata = SPI2->SPI_RDR;
wdata++;
rdata++;    
}
if(device == ADAS1000_MASTER)
{
ADAS1000_Master_UnSelect();
}
else
{
ADAS1000_Slave_UnSelect();
}
}

void ECG_init(void)
{
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 22) IOPORT_DIR_OUTPUT); //RESETB
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOB 2) IOPORT_DIR_OUTPUT);//PDB
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 21) IOPORT_DIR_INPUT);//DRDY
ioport_set_pin_mode(IOPORT_CREATE_PIN(PIOA 21) IOPORT_MODE_PULLUP);
//PIO_PA16A_SPI2_NPCS0|PIO_PA15A_SPI2_NPCS1片选手动
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 15) IOPORT_DIR_OUTPUT);
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 16) IOPORT_DIR_OUTPUT);
ADAS1000_Master_Select();
ADAS1000_Slave_Sel

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       16346  2017-06-02 17:58  ADAS1000.c
     文件       59212  2017-06-02 15:08  ADAS1000.h

评论

共有 条评论