API_BD8379.c 1.27 KB
Newer Older
崔立宝's avatar
崔立宝 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#include <hidef.h>           /* common defines and macros */

#include "API_BD8379.h"

void delay_ns(INT32U time)
{
    INT32U i;
    for(i = 0; i < time; i++)
    {
        asm NOP;
        _FEED_COP();
        //wdt_reset();
    }
}

void DB8379_Init(void)
{
    DB8379_OE_P = 0;
    DB8379_RST_P = 0;
    delay_ns(30);
    DB8379_RST_P = 1;
}


 /*----------三个BD8379芯片,  data0,data1,data2分别为第一个第二个和第三个芯片数据-------------*/
/*-----------------------------------------------------------------------------------------------*/
void DB8379_WriteData(INT32U  data0, INT32U  data1)
{
    INT8U i = 0;
    INT8U num = 0; 
    INT32U tmp[3];
    INT32U mask = 0x80000000;      


    tmp[0] = data1;
    tmp[1] = data0;

    DB8379_SIN_P = 0;
    DB8379_CLK_P = 0;
    DB8379_LE_P = 0;

    for(num = 0; num < 2; num++)  
    {
        for(i = 0; i < 12; i++)                   //高低12位需要试一下
        {
            if(tmp[num] & mask)            DB8379_SIN_P = 1;
            else                           DB8379_SIN_P = 0;

            delay_ns(8);
            DB8379_CLK_P = 1;

            delay_ns(28);
            DB8379_CLK_P = 0;
            mask >>= 1;
        }

        mask = 0x80000000;       
    }
    DB8379_LE_P = 1;
    delay_ns(14);
    DB8379_LE_P = 0;
}