久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5157|回復: 0
打印 上一主題 下一主題
收起左側

cat9555驅動代碼調試

[復制鏈接]
跳轉到指定樓層
樓主
ID:200296 發表于 2017-5-13 14:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/********************************************************************
*           For GPS Walkie Talkie 821
*     (c) Copyright 2010, suoyin
*             All Rights Reserved
*
* File   :  SAUitoplayer.c
* History:
*           08/06/2010 Created by liufang
*********************************************************************/
#define TARGET_IS_TEMPEST_RB1
#define ewarm

#include "SAInclude.h"

//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//內部宏定義
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-


//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//函數內部部調用聲明
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

//void
   //

//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//函數內部部變量聲明
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

//  定義CAT9555(I2C接口)
#define  CAT9555_SLA         (0x40>>1)   //定義CAT9555的器件地址
#define  CAT9555_INPUT0       0//CAT9555輸入端口寄存器0
#define  CAT9555_INPUT1       1//CAT9555輸入端口寄存器1
#define  CAT9555_OUTPUT0      2//CAT9555輸出端口寄存器0
#define  CAT9555_OUTPUT1      3//CAT9555輸出端口寄存器1
#define  CAT9555_PI0          4//CAT9555反轉寄存器0
#define  CAT9555_PI1          5//CAT9555反轉寄存器1
#define  CAT9555_CFG0         6//CAT9555配置寄存器0
#define  CAT9555_CFG1         7//CAT9555配置寄存器1      

tI2CM_DEVICE CAT9555  = {CAT9555_SLA, 0x00, 0x01, (void *)0, 0x00};
unsigned char gucPort1Status;

//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:寫寄存器 函數
//功  能:寫寄存器
//形  參:unsigned char ucAddr:CAT9555_OUTPUT0
//                             CAT9555_OUTPUT1
//                             CAT9555_CFG0
//                             CAT9555_CFG1
//        unsigned char ucData:8bit data
//返  回:ulStatus  返回可能的錯誤狀態
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CAT9555MWriteReg(unsigned char ucAddr, unsigned char ucData0,unsigned char ucData1)
{   
    unsigned char ucDataTemp[2];
    unsigned long ulStatus = 0;

    ucDataTemp[0] = ucData0;//port0 data
    ucDataTemp[1] = ucData1;//port1 data
    I2CM_DeviceDataSet(&CAT9555,ucAddr,ucDataTemp, 2);
    ulStatus = I2CM_DataSend(&CAT9555);  

    return ulStatus;
}


//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:CAT9555初始化函數
//功  能:配置CAT9555,包括16個I/O口的初始化 input:1  output:0
//形  參:無
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
void CAT9555Init(void)
{
    gucPort1Status = 0;
    CAT9555MWriteReg(CAT9555_CFG0, 0x00,0x00);//P0.0~P0.7,P1.0~P1.7為輸出腳
    CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P0.0~P0.7,P1.0~P1.7輸出0
}
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:電源控制函數
//功  能:電源控制輸出端口
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CAT9555PwrCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x80);//P1.7
    else
        gucPort1Status = (gucPort1Status & 0x7f);//P1.7
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳

    return ulStatus;
}

//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:按鍵音控制函數
//功  能:按鍵音控制輸出端口
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CAT9555BeepCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x40);//P1.6
    else
        gucPort1Status = (gucPort1Status & 0xbf);//P1.6
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳
    return ulStatus;
}
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:LCD控制函數
//功  能:LCD控制輸出端口
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CAT9555LCDCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x20);//P1.5
    else
        gucPort1Status = (gucPort1Status & 0xdf);//P1.5
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳
    return ulStatus;
}
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:GPS控制函數
//功  能:GPS控制輸出端口
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CAT9555GPSCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x10);//P1.4
    else
        gucPort1Status = (gucPort1Status & 0xef);//P1.4
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳
    return ulStatus;
}
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:voice pa控制函數
//功  能:voice pa控制輸出端口
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CAT9555VoicePaCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x08);//P1.3
    else
        gucPort1Status = (gucPort1Status & 0xf7);//P1.3
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳
    return ulStatus;
}
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:PWM控制函數
//功  能:PWM控制輸出端口
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CAT9555PWMCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x04);//P1.2
    else
        gucPort1Status = (gucPort1Status & 0xfb);//P1.2
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳
    return ulStatus;
}

//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:對講機發送控制函數
//功  能:對講機發送控制腳TX
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CA9555WalTalTxCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x02);//P1.1
    else
        gucPort1Status = (gucPort1Status & 0xfd);//P1.1
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳
    return ulStatus;
}

//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
//
//描  述:對講機接收控制函數
//功  能:對講機接收控制腳RX
//形  參:tBoolean tFlag:1:寫高電平  0:寫低電平
//返  回:無
//
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-cut-off rule-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
unsigned char CA9555WalTalRxCtrl(tBoolean tFlag)
{
    unsigned long ulStatus = 0;

    if (tFlag)
        gucPort1Status = (gucPort1Status | 0x01);//P1.0
    else
        gucPort1Status = (gucPort1Status & 0xfe);//P1.0
    ulStatus = CAT9555MWriteReg(CAT9555_OUTPUT0, gucPort1Status,gucPort1Status);//P1.0~P1.7為輸出腳
    return ulStatus;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美一区二区三区免费观看 | 91精品国产乱码久久久久久久久 | 久久久亚洲综合 | 欧美亚洲一区二区三区 | 在线免费观看黄色av | 久久九精品| 亚洲视频在线一区 | 色综合色综合色综合 | 亚洲第一视频 | 成人av一区二区三区 | 欧美一区二区大片 | 欧美日韩国产一区二区三区 | 亚洲一区二区三区视频在线 | 日韩在线一区二区三区 | 国产精品福利一区二区三区 | 亚洲高清在线观看 | 久久精品二区亚洲w码 | 成人福利在线观看 | 人人看人人干 | 在线视频成人 | 亚洲天堂网站 | 欧美精品久久一区 | 欧美亚洲成人网 | 伊人免费视频二 | 日韩精品久久久 | 欧美 日本 国产 | 国产精品一区二区三区在线播放 | 国产精品久久久久久久久久久久午夜片 | 精品1区 | 亚洲高清在线 | 精品毛片视频 | 99热在线免费 | 亚洲+变态+欧美+另类+精品 | 毛片视频观看 | 九九福利 | 亚洲成人av | 丝袜一区二区三区 | 国产精品伦一区二区三级视频 | 日日碰狠狠躁久久躁96avv | 久国产视频 | 亚洲精品视频免费 |